Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2012.01.08;
Скачать: CL | DM;

Вниз

While и прочее   Найти похожие ветки 

 
alexdn ©   (2011-10-03 14:59) [0]

и ещё небольшой вопрос, будет ли корректно сделать так:
 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 читается только один раз, а потом вроде как указатель в конце файла..


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

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

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

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


 
alexdn ©   (2011-10-03 15:20) [2]

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


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

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


 
Ega23 ©   (2011-10-03 15:30) [4]

TStringStream


 
Ega23 ©   (2011-10-03 15:31) [5]

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


 
alexdn ©   (2011-10-03 15:33) [6]

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


 
Ega23 ©   (2011-10-03 15:38) [7]


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


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


 
icWasya ©   (2011-10-03 16:29) [8]

>т.е. не слишком ли часто будет дёргаться 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;



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

Текущий архив: 2012.01.08;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
15-1315398270
Empleado
2011-09-07 16:24
2012.01.08
Конец OLE DB


2-1316964668
Avpsol
2011-09-25 19:31
2012.01.08
Проблема с построением цикла


15-1316444919
stas
2011-09-19 19:08
2012.01.08
Геометрия.Луч.


15-1316550580
Юрий
2011-09-21 00:29
2012.01.08
С днем рождения ! 21 сентября 2011 среда


4-1253715907
trix
2009-09-23 18:25
2012.01.08
Как послать нажатие клавиши F2 а затем клавишу "A"