Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Файловая система
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 06.09.2010, 11:21
santaIsAbsent santaIsAbsent вне форума
Прохожий
 
Регистрация: 09.08.2010
Сообщения: 21
Репутация: 10
По умолчанию Delphi работа с файлами

Доброго времени суток!

Господа, помоготе кто может. Возникла следующая задача: есть определенное количество файлов, содержащих текст в DOS кодировке, текст представлен в виде таблицы, поля не имеют разделителей, есть только фиксированная длина полей. Необходимо создать пакетную обработку этих файлов с целью определить значение определенного поля, котрое может быть либо ДА либо НЕТ и в зависимости от того какое значение имеет это поле, копируем строки с ДА в файл 1.csv, а с нет в 2.csv.

структура файла:
поле1 поле2 поле3 ПолеДаНет поле5

Спасибо!
Ответить с цитированием
  #2  
Старый 06.09.2010, 13:31
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

На кой вам выводить каждое значение? Не проще посчитать сколько всего было Да/Нет? Вот так устроит?
Код:
var
  fi: TSearchRec;
  f: TextFile;
  Res: record Yes,No: Integer; end;
  FPos,FLen: Integer;
  Path, s: String;
begin
 FPos := 50; //Позиция поля в строке
 FLen := 3; // Длина поля
 Res.Yes := 0; Res.No := 0;
 Path := ExtractFilePath(ParamStr(0));
 if FindFirst(Path+'*.csv', faAnyFile, fi) = 0
 then repeat
       AssignFile(f, Path + fi.Name);
       Reset(f);
       while not Eof(f)
       do begin
          ReadLn(f, s);
          if Copy(s, FPos, FLen) = 'ДА'
          then Inc(Res.Yes);
          if Copy(s, FPos, FLen) = 'НЕТ'
          then Inc(Res.No);
          end;
       CloseFile(f);
      until FindNext(fi) <> 0;
 FindClose(fi);
 ShowMessage(Format('Да:%d, Нет:%d',[Res.Yes, Res.No]));
end;
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #3  
Старый 07.09.2010, 08:40
santaIsAbsent santaIsAbsent вне форума
Прохожий
 
Регистрация: 09.08.2010
Сообщения: 21
Репутация: 10
По умолчанию

Спасибо большое!!!
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 21:42.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter