![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Обработчик строк из текстового файла |
|
Delphi - Обработчик строк из текстового файла
|
Новый участник Сообщения: 13 |
Есть файл с текстом формата(разделитель '|'):
1|325230ш5ш3|438|Лондон|ЛОНДОН, ВЕЛИКОБРИТАНИЯ| 2|32523лпукп4|22|Европа|ДУБЛИН, ИРЛАНДИЯ| 3|32епкупщ4пп|21|Венгрия|БУДАПЕШТ, ВЕНГРИЯ| Нужно пропарсить его ( 1. Если в 3-ем числе >394, то вычитаем из него 394(строку дублируем),остаток оставляем новой строкой.(учесть, что операция должна быть циклична, т.к. встречаются числа больше 792) 2. Отсортировать строки по 3-ему числу. (1-ое число - счетчик) ) , чтобы на выходе получилось это: 1|32епкупщ4пп|21|Венгрия|БУДАПЕШТ, ВЕНГРИЯ| 2|32523лпукп4|22|Европа|ДУБЛИН, ИРЛАНДИЯ| 3|325230ш5ш3|46|Лондон|ЛОНДОН, ВЕЛИКОБРИТАНИЯ| 4|325230ш5ш3|394|Лондон|ЛОНДОН, ВЕЛИКОБРИТАНИЯ| |
|
Отправлено: 16:37, 02-08-2016 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Цитата pageYK@fb:
да и никто вас не ограничивает работой с одним списком? |
|
------- Отправлено: 11:49, 08-08-2016 | #11 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 13
|
Профиль | Сайт | Отправить PM | Цитировать opel431,
Проблема заключается в том, что делиметр разделяет строку на подстроки, а как обратно конкатенировать для записи в файл непонятно. |
Отправлено: 14:36, 08-08-2016 | #12 |
Необычный Сообщения: 4466
|
Профиль | Сайт | Отправить PM | Цитировать pageYK@fb, есть строка, разбитая на под строки.
Что вам мешает собрать ее обратно? Если у вас формат файла фиксирован, то и собирайте в цикле Соотв n - кол-во частей строк delimiters - полученный "конструктор" подстрочек str - результирующая строка |
------- Отправлено: 15:13, 08-08-2016 | #13 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать opel431, lxa85, а какого-нибудь аналога basic'овского «Join()» в Delphi нету разве?
|
Отправлено: 15:48, 08-08-2016 | #14 |
Новый участник Сообщения: 13
|
Профиль | Сайт | Отправить PM | Цитировать lxa85, opel431,
Строки разбиваются (при delimiter = "|") на отделяемое запятыми тоже, поэтому обратно приведенным вами способом не соберешь. Вот почему мне не нравится этот метод через делимитедтекст. Поэтому прошу выкладывать решение, а не функцию которую можно применить.(уже n-раз выходит, что возникают только доп.вопросы) |
Отправлено: 15:58, 08-08-2016 | #15 |
Необычный Сообщения: 4466
|
Профиль | Сайт | Отправить PM | Цитировать Iska, честно, не знаю
![]() pageYK@fb, что значит "не соберешь"? Что отладчик говорит? Что говорят watchdog'и? Что в полученных структурах, что на выходе? Вы хоть какую-то информацию к размышлениям давайте. |
------- Отправлено: 16:48, 08-08-2016 | #16 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Встроенного аналога, с параметром разделителя, не нашел (есть обычная Concat), заменяющая +. Так что, или ее или ручками.
pageYK@fb, нужно с интересом подходить к своей задаче. Поковыряюсь параллельно с вами. Поставил триальный XE4, нашел в справочнике функцию SplitString (функция есть, как минимум с XE) и .... Для наглядность, применил TMemo. pageYK@fb, дальнейшие "телодвижения" (сортировка, адаптация, оптимизация и все, что вам требуется, делайте сами). Результат 1|325230ш5ш3|438|Лондон|ЛОНДОН, ВЕЛИКОБРИТАНИЯ| 2|325230ш5ш3|44|Лондон|ЛОНДОН, ВЕЛИКОБРИТАНИЯ| 3|32523лпукп4|22|Европа|ДУБЛИН, ИРЛАНДИЯ| 4|32епкупщ4пп|21|Венгрия|БУДАПЕШТ, ВЕНГРИЯ| |
------- Последний раз редактировалось opel431, 09-08-2016 в 15:30. Отправлено: 19:54, 08-08-2016 | #17 |
Новый участник Сообщения: 13
|
Профиль | Сайт | Отправить PM | Цитировать opel431,
Спасибо за splitstring, а memo работает только на кнопке, была бы привязка к форме. Спасибо, и на этом. |
Отправлено: 12:22, 11-08-2016 | #18 |
![]() Ветеран Сообщения: 1803
|
Профиль | Отправить PM | Цитировать Цитата pageYK@fb:
|
|
------- Отправлено: 13:40, 11-08-2016 | #19 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - Сборка текстового файла из содержимого другого текстового файла | icomboy | Скриптовые языки администрирования Windows | 0 | 10-09-2013 15:17 | |
CMD/BAT - [решено] Вывод строк текстового файла, начиная с одной и заканчивая другой | Bruce Wayne | Скриптовые языки администрирования Windows | 5 | 07-08-2013 07:32 | |
VBS/WSH/JS - [решено] из строк текстового файла нужно вырезать определенные символы | alek2012 | Скриптовые языки администрирования Windows | 10 | 11-07-2012 16:54 | |
CMD/BAT - Поиск и копирование нескольких строк из текстового файла. | valen | Скриптовые языки администрирования Windows | 0 | 07-11-2011 17:27 | |
CMD/BAT - [решено] Перенос и удаление строк из текстового файла | sk8ter | Скриптовые языки администрирования Windows | 15 | 03-10-2010 19:35 |
|