Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2011, 19:58   #1
ondar
Пользователь
 
Регистрация: 06.10.2010
Сообщений: 10
По умолчанию Как правильно разделить столбцы csv-файла?

Имеется файл students.csv со седующим содержанием:
-------------------
Иванов ИИ; 4; 5; 3
Петров ПП; 3; 5; 5
Павлов ПП; 4; 5; 4
-------------------
разделитель в моем случае это - точка с запятой , причем после каждой точки с запятой есть 1 пробел.

Необходимо получить имя студента с инициалами и оценку "5".
т.е.
-------------------
Иванов ИИ 5
Петров ПП 5
Павлов ПП 5
-------------------

Код:
procedure TForm1.Button2Click(Sender: TObject);
var
  s:string;
  ts:TStringList;
  f:TextFile;
  i:integer;
begin
  Ts := Tstringlist.create;
  AssignFile(f,'students.csv');
  Reset(f);
  while not eof(f) do
  begin
    Readln(f,s);
    ts.Delimiter:=';';
    ts.CommaText:=s;
    Memo2.Lines.Add(ts.Strings[0]+' '+ts.Strings[2]);
  end;
  closefile(f);
  ts.free;
end;
в этом случае у меня получается:
----------
Иванов 4;
Петров 3;
Павлов 4;
----------

Последний раз редактировалось ondar; 11.06.2011 в 20:08. Причина: дополнение
ondar вне форума Ответить с цитированием
Старый 11.06.2011, 20:06   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
ts.Delimiter:=';';
Нет, так не выйдет. TStringList разделяет не только по указанному символу а еще и по пробелу по умолчанию, так что можно нарваться на неожиданности - Иванов ИИ будут идти разными полями.
И в твоем случае будет скорее
Код:
Memo2.Lines.Add(ts.Strings[0]+' '+ts.Strings[1]+' '+ts.Strings[3]);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 11.06.2011, 20:24   #3
ondar
Пользователь
 
Регистрация: 06.10.2010
Сообщений: 10
По умолчанию

MS Excel, в моем случае, нормально делит столбцы csv-файла. Каким образом он это делает?
ondar вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Непростая загрузка из CSV файла в StringGrid, а затем в БД artemavd БД в Delphi 17 06.10.2011 09:10
открытие файла csv в excel Luchiya Microsoft Office Excel 4 15.12.2010 14:21
Как список фамилий из txt-файла загнать в столбцы Tarabokio Microsoft Office Excel 7 19.08.2010 21:26
Как правильно стать владельцем файла? Stilet Win Api 14 24.11.2009 21:21
Как правильно скопировать данные с одного текстового файла в другой? Dem80 Общие вопросы C/C++ 2 06.03.2009 22:17