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

Вниз

Работа со строками   Найти похожие ветки 

 
Tornado ©   (2004-04-13 10:41) [0]

Подскажите плиз как можно осуществить следующую задачу: имеется текстовой файл такого содержания (часть файла, на самом деле список большой):

Mailbox Name          Locn Last Checked In     Login Comments
---------------------------------------------------------------
01101-n.novgorod        P  18.03.04   13:50      ln  ПО Ларина    nov-01-vtg-diagnost-ne  L  18.03.04    8:04      ln  Лаборатория  krasov                                               диагностики,                                                      Некрасов     nov-01-vtg-diagnost-sh  L  18.03.04    7:59      ln  Нач.  
ishko                                                лаборатории                                                       диагностики,                                                      Шишко

Т.е. если длинный адрес то он переносится на след. строку, тоже самое с полем Comments. А мне нужно поместить в таблицу эти данные, т.е. в поле adres наименование адреса, в поле Locn букву которая после адреса (L или P) и так далее. Проблем бы не было если бы все писалось в строку...а как тут быть даже и не знаю, может есть способ?


 
Tornado ©   (2004-04-13 10:44) [1]

блин все растянулось неправильно :(((

вот так должно быть примерно:

Mailbox Name Locn Last Checked In     Login Comments
-----------------------------------------------------
какой-то     L    18.03.04  13.50     In   Лаборатория    
Adress                                     диагностики


 
TButton ©   (2004-04-13 10:46) [2]

use the CODE


 
piople ©   (2004-04-13 10:46) [3]

Пользуйся базой данных или в крайнем случае инициализационные файлы.


 
Tornado ©   (2004-04-13 10:47) [4]

>>> piople ©   (13.04.04 10:46) [3]

это лог-файл, мне его и нужно забить в базу


 
TButton ©   (2004-04-13 10:47) [5]

ну. WordWrap - false
отключи перенос по словам в блокноте.


 
piople ©   (2004-04-13 10:49) [6]

Удалено модератором
Примечание: 7 дней RO за мат


 
Tornado ©   (2004-04-13 10:53) [7]

>>>

piople ©   (13.04.04 10:49) [6]

да блин (не буду матом :) есть такой вот лог, который создает левая прога, мне его надо обработать вышеописанным образом


 
Tornado ©   (2004-04-13 10:54) [8]

>>> TButton ©   (13.04.04 10:47) [5]

попробую пасиб


 
Anatoly Podgoretsky ©   (2004-04-13 10:56) [9]

Это эниксовсовский формат, разделение строк символом LF
Загони в TStringList


 
Семен Сорокин ©   (2004-04-13 10:57) [10]

2Tornado
считывай посточно, раскидывай по полям, ориентируйся на позицию символа, дополняй в случае незаверншенности следующей строкой - все должно быть достаточно прозрачно.


 
Jack128 ©   (2004-04-13 11:02) [11]


> Tornado ©  
 А какое отношение WordWrap имеет к содержимому текстового файла? Или ты думаешь, что отмена WordWrap"a удалит из твоего файла лишнии #13#10?  Или все таки изначально формулировка

> Т.е. если длинный адрес то он переносится на след. строку
была несколько неправильной? ;-)


 
Tornado ©   (2004-04-13 11:13) [12]

>>> Jack128 ©   (13.04.04 11:02) [11]

WordWrap конечно тут не причем :) думаю нужно идти по пути предложенному Anatoly Podgoretsky ©   (13.04.04 10:56) [9]...формулировка правильная


 
Tornado ©   (2004-04-13 11:13) [13]

>>> Jack128 ©   (13.04.04 11:02) [11]

WordWrap конечно тут не причем :) думаю нужно идти по пути предложенному Anatoly Podgoretsky ©   (13.04.04 10:56) [9]...формулировка правильная


 
han_malign ©   (2004-04-13 11:29) [14]

У тебя есть обязательные поля (Locn, Last Checked In), по ним ты можешь определить первая это строка или строка с продолжением разбитых имен.
Формат табличный, и для каждой разбитой на несколько строк ячейки, ты должен выделид подстроку этой ячейки и добывить к предыдущей. При на хождении следущей строки с заполнеными обязательными полями(или окончанию файла), считаешь что накопление данных по ячейкам предыдущей записи закончено, и отправляешь в базу.
Формат тапблицы абсолютно прозрачен, полей мало, тебе нужно всего две буферных строки для накопления полей Mailbox Name, Login Comments (ну и еще две для хранения Locn, Last Checked In)...


 
han_malign ©   (2004-04-13 11:30) [15]

Ух, сколько помарок, мой личный рекорд пожалуй...


 
Tornado ©   (2004-04-13 11:50) [16]

>> han_malign ©   (13.04.04 11:29) [14]

эх примерчик бы махонький :)


 
Anatoly Podgoretsky ©   (2004-04-13 11:54) [17]

Tornado ©   (13.04.04 11:13) [13]
Если не веришь, то открой лог каким либо шестнадцатиричным редактором и посмотри.


 
panov ©   (2004-04-13 11:58) [18]

Т.е. если длинный адрес то он переносится на след. строку,

т.е. файл содержит2 строки вместо одной? Ты в этом точно уверен?
Если да, то как определил?


 
Tornado ©   (2004-04-13 12:02) [19]

>>> Anatoly Podgoretsky ©   (13.04.04 11:54) [17]

ну почему же не верю? ояень даже верю и теперь думаю как это реализвать, какие функции использовать...

>>> panov ©   (13.04.04 11:58) [18]

Точно, это же обычный лог, в него эта левая супер-программа пишет данные именно в таком виде, как будто есть невидимая таблица и длины строк не хватает для длинных адресов или кмментариев, она и переносит их на следущую строку...Это видно в обычном блокноте


 
panov ©   (2004-04-13 12:04) [20]

>Tornado ©   (13.04.04 12:02) [19]

Это видно в обычном блокноте

А это как раз и не есть правильно.
Я вот не уверен, что у тебя строка переносится...
Смотри содержимое в FAR, например, отключив перенос длинных строк, в HEX виде, в конце-кончов...



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

Форум: "Основная";
Текущий архив: 2004.05.02;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.49 MB
Время: 0.039 c
1-1081945561
Андрей Сенченко
2004-04-14 16:26
2004.05.02
Спасите тормоза :)


8-1076051433
Onward
2004-02-06 10:10
2004.05.02
SetPixel??????????


4-1078152750
v][x
2004-03-01 17:52
2004.05.02
Job Object или CreateProcess


3-1081251462
Fishka
2004-04-06 15:37
2004.05.02
Excel и SUMIF


7-1078989745
DuchmanSoft
2004-03-11 10:22
2004.05.02
Как убрать отображение чужего окна на панели задачь?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский