Главная страница
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.035 c
1-79037
Layner
2003-11-10 13:18
2003.11.24
Господа, подскажите, как правидьно организовать большой проект


3-78838
Виталя
2003-11-04 10:02
2003.11.24
Перегрузка данных из Access в Interbase


4-79229
Ich Hasse
2003-09-28 19:30
2003.11.24
реакция на help


1-79053
Jul
2003-11-13 13:24
2003.11.24
Office_TLB


3-78828
Alex_x
2003-11-04 12:16
2003.11.24
Проблема с установкой midas приложений на клиенте