Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.01 c
1-79034
Ragazor
2003-11-13 16:11
2003.11.24
КАК перевести Pchar to string?


14-79152
Профи
2003-10-28 13:24
2003.11.24
Новый сайт


4-79240
Aleksandr
2003-09-26 14:47
2003.11.24
Есть стандартные функции АПИ для диалога со строкой ввода?


1-78979
Катерина
2003-11-14 13:40
2003.11.24
Убрать HotKeys в меню


8-79058
ildar
2003-07-22 09:40
2003.11.24
вхождение одного звукового фрагмента в другой





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский