Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1317593235
я
2011-10-03 02:07
2012.01.08
Как сделать множественный фильтр с использованием ClientDataSet


1-1275582894
alpp
2010-06-03 20:34
2012.01.08
слияние 2-х файлов word в один


15-1316169795
Dimka Maslov
2011-09-16 14:43
2012.01.08
Пятничная задачка


2-1317379208
suize
2011-09-30 14:40
2012.01.08
шрифты в delphiXe2


2-1317233178
Очень злой
2011-09-28 22:06
2012.01.08
Можно ли сравнивать типизированные указатели разных типов?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский