Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Вниз

Проблема при чтении из файла   Найти похожие ветки 

 
ovling   (2003-11-11 12:19) [0]

Добрый день, Мастера!
При чтении из файла в консольной программе вылетает ошибка: "Exception EAccessViolation in module Project1.exe at 000086B5"
и т. д. Программа вылетает.
Ошибка появляется при попытке считать значение переменной типа AnsiString, если предварительно в неё была записана пустая строка из файла.
Чтение производилось с помощью функции readln.
Зарание благодарен за помощь.


 
MBo   (2003-11-11 12:23) [1]

код покажи


 
ovling   (2003-11-11 17:16) [2]

нет проблем...

program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

var TextString: AnsiString;
FilePath:String;
i, j, k, JornalNumber, NumberOfFolders, FirstLine, SecondLine:integer;
InputText, OutputText:Text;
begin
write("Issue of a magazine "); readln(JornalNumber);
write("Number of last page is "); readln(NumberOfFolders);
write("The first important line is "); readln(FirstLine);
write("The second impotant line is "); readln(SecondLine);

for i:=1 to NumberOfFolders do
begin
If i<10 then FilePath:=concat("00",FloatToStr(i));
If (i>9) And (i<100) then FilePath:=concat("0",FloatToStr(i));
If (i>99) And (i<1000) then FilePath:=concat(FloatToStr(i));
If FileExists(concat(FilePath,"\1.html"))=true then
begin
Assign(OutputText,concat(FilePath,".htm"));
Rewrite(OutputText);
writeln(OutputText,"<html><head><title>Xakep #",floatToStr(JornalNumber),"</title></head><body>");
writeln(OutputText,"<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>");
for j:=1 to 9 do
begin
If FileExists(concat(FilePath,"\",FloatToStr(j),".html"))=true then
begin
Assign(InputText,concat(FilePath,"\",FloatToStr(j),".html"));
Reset(InputText);
readln(InputText,TextString); k:=1;
While TextString[2]<>"c" do
begin {ошибку выдаёт в следующей строке}
if ((k>=FirstLine)And(j=1)) OR (k>=SecondLine) then writeln(OutputText,TextString);
k:=k+1;
readln(InputText,TextString);
end;
CloseFile(InputText);
end;
end;
writeln(OutputText,"<center><p><a href="index.htm">Содержание</a> </center>");
writeln(OutputText,"</td></tr></table>");
writeln(OutputText,"</body></html>");
CloseFile(OutputText);
end;
end;
writeln("Files have been converted successfully!");;
readln;
end.
{******************************************************}
{<html>

<head>

и так далее ...
}


 
Anatoly Podgoretsky   (2003-11-11 17:19) [3]

Это ошибка TextString[2], с чего ты решил, что в строке есть 2 символа?


 
ovling   (2003-11-11 17:19) [4]

нет проблем...


program Project1;

{$APPTYPE CONSOLE}

uses
SysUtils;

var TextString: AnsiString;
FilePath:String;
i, j, k, JornalNumber, NumberOfFolders, FirstLine, SecondLine:integer;
InputText, OutputText:Text;
begin
write("Issue of a magazine "); readln(JornalNumber);
write("Number of last page is "); readln(NumberOfFolders);
write("The first important line is "); readln(FirstLine);
write("The second impotant line is "); readln(SecondLine);

for i:=1 to NumberOfFolders do
begin
If i<10 then FilePath:=concat("00",FloatToStr(i));
If (i>9) And (i<100) then FilePath:=concat("0",FloatToStr(i));
If (i>99) And (i<1000) then FilePath:=concat(FloatToStr(i));
If FileExists(concat(FilePath,"\1.html"))=true then
begin
Assign(OutputText,concat(FilePath,".htm"));
Rewrite(OutputText);
writeln(OutputText,"<html><head><title>Xakep #",floatToStr(JornalNumber),"</title></head><body>");
writeln(OutputText,"<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td>");
for j:=1 to 9 do
begin
If FileExists(concat(FilePath,"\",FloatToStr(j),".html"))=true then
begin
Assign(InputText,concat(FilePath,"\",FloatToStr(j),".html"));
Reset(InputText);
readln(InputText,TextString); k:=1;
While TextString[2]<>"c" do
begin {ошибку выдаёт в следующей строке}
if ((k>=FirstLine)And(j=1)) OR (k>=SecondLine) then writeln(OutputText,TextString);
k:=k+1;
readln(InputText,TextString);
end;
CloseFile(InputText);
end;
end;
writeln(OutputText,"<center><p><a href="index.htm">Содержание</a> </center>");
writeln(OutputText,"</td></tr></table>");
writeln(OutputText,"</body></html>");
CloseFile(OutputText);
end;
end;
writeln("Files have been converted successfully!");;
readln;
end.

{******************************************************}
А это пример текста в файле

html

head

и так далее ...

Зарание благодарен.



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2003.11.20;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.012 c
3-65703
SasaR
2003-10-30 10:39
2003.11.20
Yaffi Personal


3-65765
Layner
2003-10-31 11:03
2003.11.20
Какое событие совершает DBGrid (EhDBGrid) после перехода


7-66147
FoX
2003-09-12 14:14
2003.11.20
Автозапуск в безопасном режим


1-65840
ККВ
2003-11-06 13:41
2003.11.20
Оболочка для CD


3-65726
Виталя
2003-11-01 17:49
2003.11.20
ХП при попытке удаления говорит что она используется





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский