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

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

While и прочее


alexdn ©   (2011-10-03 14:59:00) 

и ещё небольшой вопрос, будет ли корректно сделать так:
 for x:=0 to StrList.Count-1 do //задаем цикл до конца файла
  begin
FNamem:='st.txt';
 AssignFile(F_i,FNamem);
  reset(F_i);
 While not eof(F_i) do //задаем цикл до конца файла
  begin

readln(F_i,s);
if StrList[x]=s then StrList[x]:='';

   end;
 closefile(F_i);

 end;
StrList.SaveToFile('1.txt');
 {closefile(F_i);}
StrList.Free;

т.е. не слишком ли часто будет дёргаться reset(F_i); т.е. если раз 100 /цикл в цикле/ винт не улетит?
просто если вынести reset(F_i) за цикл, то While not eof(F_i) do читается только один раз, а потом вроде как указатель в конце файла..


icWasya   (2011-10-03 16:29:00) [1]

>т.е. не слишком ли часто будет дёргаться reset(F_i); т.е. если раз 100 /цикл в цикле/ винт не улетит? просто если вынести reset(F_i) за цикл, то While not eof(F_i) do читается только один раз, а потом вроде как указатель в конце файла..

А ты один раз считай в другой StringList и ищи там

var
 ST_i:TStrings;

FNamem:='st.txt';
ST_i:=TStringList.Create;
ST_i.LoadFromFile(FNamem);

for x:=StrList.Count-1 downto do //задаем цикл до конца файла
 begin
  if ST_i.IndexOf(StrList[x])>=0 then
    StrList.Delete(x);

end;
StrList.SaveToFile('1.txt');
ST_i.Free;
StrList.Free;


Ega23   (2011-10-03 15:38:00) [2]


> Да уже вроде как всё


Тебе из строки нужно выкинуть ненужные символы?


alexdn   (2011-10-03 15:33:00) [3]

> Ega23 ©   (03.10.11 15:31) [5]
> Что за задача-то?
Да уже вроде как всё, может потом на второй стринг лист перейду, да и то лень)..


Ega23   (2011-10-03 15:31:00) [4]

Что за задача-то?


Ega23   (2011-10-03 15:30:00) [5]

TStringStream


Германн   (2011-10-03 15:26:00) [6]

А взять два стринглиста религия не позволяет?


alexdn   (2011-10-03 15:20:00) [7]

> Сергей М. ©   (03.10.11 15:15) [1]
Ну 100-300 раз я думаю к летальному исходу винта не приведут..


Сергей М.   (2011-10-03 15:15:00) [8]

AssignFile смело можно вынести за тело цикла.

> не слишком ли часто

А деваться некуда.
Открыть/переоткрыть текстовый файл в дан.случае можно только таким образом.
Лучше будет отказаться от этого метода доступа к файлу в пользу любого файлстрима, заточенного под доступ к текст.файлам : один раз открыл файл, пробежался по нему, установил позицию в ноль - и беги опять по файлу.


Наверх

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