Delphirus - прграммирование на delphi
   Все о delphi Delphirus - прграммирование на delphi
blocks.gif
Навигация
 

Главная
Статьи
Базы данных
Графика
Защита
Интернет
Система
Тексты
Мультимедиа
Файлы
Формы и окна
Другое
Советы
Базы данных
Графика
Интернет
Мультимедиа
Система
Тексты
Файлы
Файлы
Исходники
Компоненты
Инфо
Поиск по сайту
Обратная связь
Самое популярное
Аккаунт
Карта сайта

 
 
 

Советы по delphi \ Файловая система \ Файлы \ Импорт больших файлов с разделителями

Импорт больших файлов с разделителями

var
  s: string;
  f: TextFile;
  AssignFile(f, 'D:INPUT.TXT');
  Reset(f);
  while not EOF(f) do

  begin
    ReadLn(s, f);
    ShowMessage(GetField(s, 1)); {Первое поле}
    ShowMessage(GetField(s, 6)); {Шестое поле}
    ShowMessage(GetField(s, 25)); {возвратит '', если нет 25 колонки...}
  end;
  CloseFile(f);

  { ==== Данная функция возвращает поле из строки с разделителем. ==== }

function GetField(InpString: string; fieldpos: Integer): string;
var

  c: Char;
  curpos, i: Integer;
begin

  curpos := 1;
  for i := 1 to fieldpos do
  begin
    result := '';
    if curpos > Length(InpString) then
      Break;
    repeat
      c := InpString[curpos];
      Inc(curpos, 1);
      if (c = '"') or (c = #13) or (c = #10) then
        c := ' ';
      if c <> ',' then
        result := result + c;
    until (c = ',') or (curpos > Length(InpString))
  end;
  if (curpos > Length(InpString)) and (i < fieldpos) then
    result := '';
  result := Trim(result);
end;

{ ==== Данная функция удаляет у строки левые и правые пробелы. ==== }

function Trim(inp_str: string): string;
var

  i: Integer;
begin

  for i := 1 to Length(inp_str) do
    if inp_str[i] <> ' ' then
      Break;
  if i > 1 then
    Delete(inp_str, 1, i - 1);
  for i := Length(inp_str) downto 1 do
    if inp_str[i] <> ' ' then
      Break;
  if i < Length(inp_str) then
    Delete(inp_str, i + 1, Length(inp_str));
  result := inp_str;
  if result = ' ' then
    result := '';
end;

Название: Импорт больших файлов с разделителями
Дата публикации: 2004-06-15 (2785 Прочтено)

 
 

 

Page generation 0.036 seconds