Форум: "Начинающим";
Текущий архив: 2012.01.08;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.003 c