![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
нужна помощь по работе с текстовыми файлами [D6]
ne0n © (2005-10-21 15:08:00)Мастера проблема следующая:
у меня есть два текстовых файла в одном хранятся
сочетания разных вопросов, а в другом варианты ответов на них. В программу я ввожу вопрос и она начинает читать первый текстовик если найдено совподения(например 23 строка совпала с введеным значением) то мы открываем 2 текстовик и переходим на 23 строку и читаем ее а потом ввыводим ее содержание.
для чтения первого файла использовал код :
Function GetFileSize(FIleName:String):integer;
var f: File of Byte;
begin
try
AssignFile(f, FileName);
Reset(f);
result:=filesize(F);
CloseFile(f);
except
result:=-1;
end;
end;
Procedure ReadMyFile(a: String);
Var i,j:integer;
F: textFile;
S: String;
Begin
Form1.ProgressBar1.Max:=GetFileSize('vb.bas');
Form1.ProgressBar1.position:=0;
assignfile(f,'vb.bas');
Canceled:=False;
reset(f);
i:=0;j:=0;
while not eof(f) do
begin
inc(j);
readln(f,s);
i:=i+length(s)+2;
if (j mod 1000)=0 then
begin
Form1.ProgressBar1.position:=i;
Application.ProcessMessages;
if canceled then break;
end;
if s = a then showmessage('Ответ найден');{надо определить какой строке принадлежит s}
end;
CloseFile(f);
End;
как перейтина нужную строку я знаю!
ne0n (2005-10-21 15:24:00) [1]Спасибо ребята, теперь разобрался! Особенно благодарю Eraser'a.
umbra (2005-10-21 15:18:00) [2]Увеличивай в цикле счетчик
clickmaker (2005-10-21 15:18:00) [3]StringList.IndexOf ?
Eraser (2005-10-21 15:18:00) [4]
> ne0n © (21.10.05 15:15) [2]
Я так понимаю номер строки храниться в переменой j. Код отформатируй.
ne0n (2005-10-21 15:15:00) [5]Видимо запутал:)
> if s = a then showmessage('Ответ найден');{надо определить
> какой строке принадлежит s}
> end;
> CloseFile(f);
Eraser (2005-10-21 15:10:00) [6]
> ne0n © (21.10.05 15:08)
Лучше используй класс TStringList, код упроститься.
А вопрос какой?