|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - [решено] Парсинг строк |
|
|
Delphi - [решено] Парсинг строк
|
Ветеран Сообщения: 1158 |
Всем привет! Нужна помощь! Имеем текст (сам текст прикрепил к сообщению).
В нём есть колонки Date Time Attr Size Compressed Name со списком. Нужно после парсинга , чтобы я мог выводить отдельно по желанию список каждой колонки в memo например Пример : Список колонки Name: ------------------- sevenzip sevenzip\Win32 sevenzip\Win32\Debug sevenzip\__history sevenzip\__recovery sevenzip\Project1.dproj sevenzip\Project1.dproj.local sevenzip\Project1.identcache sevenzip\Project1.res sevenzip\Project1.stat .... Мой код : procedure TForm1.Button2Click(Sender: TObject); VAR F,D: TStringList; I:INTEGER; begin d := TStringList.Create; F:= TStringList.Create; d.LoadFromFile('C:\ping.txt'); d.Delete(D.Count-1); d.Delete(D.Count-1); for i := 19 to D.Count-1 do BEGIN F.Clear; F.CommaText:= D.Strings[i]; MEMO1.Lines.Add(F.Strings[4]); END; F.Free; d.Free; end; end. |
|
------- Отправлено: 18:29, 29-09-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Painkiller, читайте из файла построчно, затем делите каждую строку тупо по позициям.
|
Отправлено: 19:11, 29-09-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 1158
|
Профиль | Отправить PM | Цитировать Iska, а я что делаю ? Проблема в том, что я не знаю, что делать, если в колонке пустые строки. Как реализовать, чтобы пустые строки в колонке игнорировались?
|
------- Последний раз редактировалось Painkiller, 29-09-2018 в 19:59. Отправлено: 19:28, 29-09-2018 | #3 |
Ветеран Сообщения: 1158
|
Профиль | Отправить PM | Цитировать Вопрос решён!
|
------- Отправлено: 20:43, 29-09-2018 | #4 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Зная Вашу особенность разбираться во всем самому, просто советую, посмотрите на следующие функции и свойства в Delphi:
- разделение строки 1. Classes.TStrings.DelimitedText, Classes.TStrings.StrictDelimiter 2. Classes.ExtractStrings 3. StrUtils.SplitString - пустые строки 1. Lenght() |
|
------- Отправлено: 23:09, 29-09-2018 | #5 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата opel431:
Примеры таких строк (из приложенного выше файла
2018-08-13 01:15:31 D.... 0 0 sevenzip 2018-08-05 01:56:56 D.... 0 0 sevenzip\Win32 2018-08-05 03:33:09 D.... 0 0 sevenzip\Win32\Debug 2018-08-05 03:30:27 D.H.. 0 0 sevenzip\__history 2018-08-13 01:15:31 D.H.. 0 0 sevenzip\__recovery 2018-08-05 01:56:56 ....A 234 88306 sevenzip\Project1.dpr 2018-08-05 01:56:55 ....A 29458 sevenzip\Project1.dproj 2018-08-05 01:56:56 ....A 2457 sevenzip\Project1.dproj.local 2018-08-13 01:15:31 ....A 63 sevenzip\Project1.identcache 2018-08-05 01:56:56 ....A 59412 sevenzip\Project1.res 2018-08-13 01:15:31 ....A 163 sevenzip\Project1.stat 2016-12-09 23:46:18 ....A 69906 sevenzip\sevenzip.pas 2018-08-05 03:14:40 ....A 623 sevenzip\Unit1.dfm 2018-08-05 03:25:14 ....A 1025 sevenzip\Unit1.pas 2018-08-05 01:57:30 ....A 76147 sevenzip\Win32\Debug\sevenzip.dcu 2018-08-05 03:30:28 ....A 6466 sevenzip\Win32\Debug\Unit1.dcu 2018-08-05 01:56:50 ....A 329 sevenzip\__history\Unit1.dfm.~1~ 2018-08-05 01:56:56 ....A 361 sevenzip\__history\Unit1.pas.~1~ 2017-04-29 13:15:12 ....A 1099776 2471456 sevenzip\Win32\Debug\7z.dll 2018-08-13 01:12:53 ....A 11234841 sevenzip\Win32\Debug\Project1.exe подстроки фиксированной длины, пытался сплитить эти строки по разделителю. И, поскольку число получаемых таким образом элементов для разных строк было различным, закономерно на некоторых строках получал ошибку Index out of range при попытке обращения к элементу по несуществующему индексу. |
|
Отправлено: 23:30, 29-09-2018 | #6 |
Ветеран Сообщения: 1158
|
Профиль | Отправить PM | Цитировать Цитата opel431:
Цитата Iska:
Тут вопрос решён. opel431, у меня теперь другая проблема . Например задаю размер файла в ProgressBar1.Max и получаю ошибку, например размер файла ProgressBar1.Max =28500915651, я так понял превысил максимально допустимое значение, так как с короткими всё гуд. Как решить ? Пока не придумал. =( Int64 тоже не помогает |
||
------- Последний раз редактировалось Painkiller, 30-09-2018 в 02:17. Отправлено: 02:11, 30-09-2018 | #7 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Painkiller:
Цитата Painkiller:
|
||
Отправлено: 07:48, 30-09-2018 | #8 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать "Пустые строки", имелось ввиду "пустые" подстроки в строке, которые при парсинге добавляются в массив строк, уже как строка.
Вам видимо нужно сохранять общее количество строк в колонках (SL.Count)? Что Вам мешает заменить пустую строку на приемлемый для Вас результат Цитата Painkiller:
или просто, используйте свойство pb1.Style =pbstMarquee |
|
------- Последний раз редактировалось opel431, 30-09-2018 в 11:00. Отправлено: 10:43, 30-09-2018 | #9 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата opel431:
|
|
Отправлено: 12:08, 30-09-2018 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Любой язык - Удаление из txt файлов не нужных строк и дубликатов строк. | voler | Скриптовые языки администрирования Windows | 1 | 26-02-2018 14:10 | |
CMD/BAT - [решено] Удаление пустых строк, пробелов и/или конца строк | blackeangel | Скриптовые языки администрирования Windows | 12 | 11-03-2016 21:49 | |
CMD/BAT - Поиск слова в тексте, удаление строки, удаление 8 строк выше и 3 строк ниже | Alk-13 | Скриптовые языки администрирования Windows | 0 | 10-02-2012 18:06 | |
CMD/BAT - Парсинг | Чин Хон | Скриптовые языки администрирования Windows | 1 | 04-02-2011 13:51 | |
Delphi - Парсинг | Miko | Программирование и базы данных | 7 | 27-09-2010 10:46 |
|