Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Delphi работа с txt файлами! 
:(
    Опции темы
sokolik117845
Дата 9.4.2012, 10:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 10.7.2011

Репутация: нет
Всего: нет



Приветствую форумчан! 
Есть .txt файл в котором содержаться строки вида: 

111xxxx 
222xxxx 
222xxxx 
333xxxx 
111xxxx 
555xxxx 
666xxxx 
777xxxx 
888xxxx 

Выше приведенные строки необходимо раскинуть по трем .txt файлам следующим образом: 
строки, которые содержат в начале символы 111, 222 вырезать из исходного файла и записать в 1.txt 
строки, которые содержат в начале символы 333, 555 вырезать из исходного файла и записать в 2.txt 
строки, которые содержат в начале символы 666, 777, 888 вырезать из исходного файла и записать в 3.txt

буду признателен, если кто поможет кодом! С текстовыми файлами раньше не работал, а тут срочно понадобилось! 
PM MAIL   Вверх
Данкинг
Дата 9.4.2012, 10:29 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Yersinia pestis
****


Профиль
Группа: Завсегдатай
Сообщений: 8302
Регистрация: 7.11.2006
Где: მოსკოვი

Репутация: 9
Всего: 130



Грузи всё в TStringlist и работай как обычно со строками. Всякие AssignFile тебе и не потребуются.


--------------------
There's nothing left but silent epitaphs.
PM MAIL WWW   Вверх
sokolik117845
Дата 9.4.2012, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 12
Регистрация: 10.7.2011

Репутация: нет
Всего: нет



Может пригодится кому!
Код

var ts, ts1,ts2, ts3 :TStringList;
   i : integer;
   s : string;
begin
  ts := TStringList.Create;
  ts1 := TStringList.Create;
  ts2 := TStringList.Create;
  ts3 := TStringList.Create;

  try
    ts.LoadFromFile('Исходный.txt');
    for i:=0 to ts.Count-1 do begin
      s := ts.Strings[i];
      if  (Pos('111',s)=1) or (Pos('222',s)=1) then ts1.Append(s)
      else
        if  (Pos('333',s)=1) or (Pos('555',s)=1) then ts2.Append(s)
        else
          if  (Pos('666',s)=1) or (Pos('777',s)=1)
                                      or (Pos('888',s)=1) then ts3.Append(s)
     end;
     
     {сохранение результатов}
     ts1.SaveToFile('1.txt');
     ts2.SaveToFile('2.txt');
     ts3.SaveToFile('3.txt');

    end;

  finally
     ts.Free;
     ts1.Free;
     ts2.Free;
     ts3.Free;
  end;
  

end;

PM MAIL   Вверх
RelictOs
Дата 9.4.2012, 13:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 45
Регистрация: 14.2.2012

Репутация: нет
Всего: 1



Код

var
 i : integer;
 Fname : string;
begin

with TStringList.Create do
begin
 LoadFromFile('Test.txt');
 for i := 0 To Count -1 do
  begin
   if (pos('111',Strings[i]) > 0) or (pos('222',Strings[i]) > 0) then
    Fname := 'File1.txt'
   else
    if (pos('333',Strings[i]) > 0) or (pos('555',Strings[i]) > 0) then
     Fname := 'File2.txt'
    else
     if (pos('666',Strings[i]) > 0) or (pos('777',Strings[i]) > 0) or (pos('888',Strings[i]) > 0) then
      Fname := 'File3.txt'
     else next;

   with TFileStream.Create(Fname,fmCreate or fmOpenWrite or fmShareDenyWrite) do
     begin
      Seek(Size,soBeginning);
      Write(PChar(Strings[i])[0],Length(Strings[i]));
      Free;
     end;
   Strings[i] := '';
  end;
  SaveToFile('Test.txt');
  Free;
end;
end;


Знаю, есть масса более простых методов, но мне было интересно разобраться именно с TStream, что я и попытался сделать на вашем примере.
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0901 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.