Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

нужна помощь по работе с текстовыми файлами [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, код упроститься.
А вопрос какой?


Наверх

Титульная страница Поиск, карта сайта Написать письмо