Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.24;
Скачать: CL | DM;

Вниз

Считывание табличных данных из файла.   Найти похожие ветки 

 
Michael_X ©   (2003-11-14 09:27) [0]

Есть у меня куча файлов, в которых находится куча столбцов, причём расстояние между ними в пробелах не нормировано. Вопрос: каким макаром можно считать из них эти столбцы в том же порядке, как и в файле? Например, в Си есть оператор fscanf, а вот в Делфи как это можно организовать?


 
MBo ©   (2003-11-14 09:51) [1]

Read(textfil,a,b,c...)
или
TStringList.CommaText


 
Digitman ©   (2003-11-14 09:57) [2]

решение "в лоб" :

var
s: String;
Columns: TStringList;
...
//здесь читаем в переменную s очер.строку из файла

while Pos(s, " ") > 0 do //пока встречаются подряд следующие 2 пробела
s := StringReplace(s, " ", "", [rfReplaceAll]); // вырезать их
//теперь в строке осталось по одному пробелу между "словами"
s := StringReplace(s, " ", #10, [rfReplaceAll]); // меняем пробелы на символ LF
Columns.SetText(s); //остальное за нас сделает класс TStrings

//посмотрим, что получилось
for i:= 0 to Columns.Count - 1 do
ShowMessage(Columns[i]);


 
Michael_X ©   (2003-11-14 10:01) [3]

Спасибо, парни. Сегодня попробую.


 
Michael_X ©   (2003-11-14 10:04) [4]

Да...., а если знаки табуляции в перемешку тоже встречаются, т.е. где-то есть, где-то - нет.?


 
Digitman ©   (2003-11-14 10:13) [5]


> Michael_X


замени их на один пробел, потом - мой код


 
Anatoly Podgoretsky ©   (2003-11-14 10:19) [6]

Все пробелы и табуляции заменить ОДНИМ пробелом, или сделать ручную разборку строки в переменные.


 
Michael_X ©   (2003-11-14 10:21) [7]

Точно, ещё раз спасибо.
И ещё один вопросик: может в Делфи можно, как-нибудь работать напрямую с вордовскими файлами? Потому как для того чтобы работать с ними программно мне сейчас приходится ковертировать их сначала в txt.


 
Digitman ©   (2003-11-14 10:24) [8]

пусть с "вордовскими файлами" работает сам Ворд - он лучше других знает, как работать со своими "родными" файлами
тебе останется лишь управлять Вордом - подавать ему нужные команды и получать результаты


 
Michael_X ©   (2003-11-14 10:30) [9]

К сожалению не знаю, как это можно программно реализовать (передавать ворду команды, да и команды эти мне не известны). Буду очень признателен за ссылку или пояснения. За время общения родился ещё один вопрос: как осуществить форматированный вывод в файл? На Си это делается при помощи fprintf.


 
Anatoly Podgoretsky ©   (2003-11-14 10:37) [10]

Michael_X © (14.11.03 10:30) [9]
Тебе прямая дорога на http://www.delphikingdom.com/lyceum/seminar.asp?partID=4


 
Ломброзо ©   (2003-11-14 10:40) [11]

1) для разгребания вот такого вот барахла ничего лучше регулярных выражений не существует. Примерный код на Perl будет занимать три строки
while (<IN>) { # читать файл посторочно
@arr = split(/\s+/, $_); # разбить текущ. строку по одному и более пробелам, следущим подряд, в массив
}


2) fprintf eq

Write(FileHandle, Format("formatstring", [args]));


 
Michael_X ©   (2003-11-14 10:50) [12]

2Anatoly Podgoretsky
Спасибо за ссылки. А с вордовскими файлами как быть?


 
Michael_X ©   (2003-11-14 10:50) [13]

2Anatoly Podgoretsky
Спасибо за ссылку. А с вордовскими файлами как быть?



Страницы: 1 вся ветка

Текущий архив: 2003.11.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.019 c
14-79121
Слэш2
2003-11-01 11:34
2003.11.24
Где в инете значки есть на кнопки?


14-79135
aVast
2003-11-03 11:07
2003.11.24
а круто ли это?


1-79005
Dark Elf
2003-11-14 11:16
2003.11.24
Отображение даты


7-79204
MAPIIIAJL
2003-09-12 10:22
2003.11.24
Виртуальный COM порт


3-78787
Andriy Tysh
2003-11-04 20:44
2003.11.24
Снова QuickReport