![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 10.12.2012
Сообщений: 64
|
![]()
Добрый день! Есть файл txt c данными такого вида:
15;432156;name1;13,30;;;;12345;;; 26;323257;name2;27,67;;56;;;56;; Мне нужно подготовить файл для экспорта в бд, убрав все лишнее, т.е. все данные в строке после 4-го разделителя, например. Получится должно так: 15;432156;name1;13,30; 26;323257;name2;27,67; И сохранить результат в файл txt. Можно в исходный файл, можно в новый. Спасибо! |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
![]()
Как вариант:
1. Загнать файл в StringList (LoadFromFile) 2. Пройтись по каждой строке функцией StringReplace (StringReplace('26;323257;name2;27, 67;;56;;;56;;',';;',';',[rfReplaceAll] ) ; ) 3. Перезаписать файл из StringList (SaveToFile)
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
![]() |
![]() |
![]() |
#3 | |
Пользователь
Регистрация: 10.12.2012
Сообщений: 64
|
![]() Цитата:
Я себе это представляю так: нужно пробежать по строке, считая по пути количество разделителей, когда счетчик будет равным четырем, очистить строку с этой позиции до конца строки. Вот как это написать на delphi? Последний раз редактировалось Kerby666; 08.08.2013 в 13:50. |
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
тоже мне, "бином Ньютона"...
![]() ловите код: Код:
p.s. ещё эту же задачу можно решить банальным циклом по всем символам строки с подсчётом точек с запятой. а ещё, эту же задачу можно решить через использование PosEx (я, в принципе, в своём примере моделировал именно поведение функции PosEx) |
![]() |
![]() |
![]() |
#5 | |
Пользователь
Регистрация: 10.12.2012
Сообщений: 64
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#6 | |
Форумчанин
Регистрация: 04.06.2009
Сообщений: 351
|
![]() Цитата:
1. Бежим по всей строке циклом (for i:=1 to Length('строка')) 2. Проверяем каждый символ на вылидность символу (if copy('строка',i,1 = ';')) 3. Увелисиваем счетчик 4. Если счетчик равен 4 сопируем нужную часть строки (copy('строка',1,i))
Мне разрешено открывать только одну страницу - about :blank. Сперва было скучно, но потом я втянулся. Теперь у меня там живет 2 виртуальных друга, и я слышу голоса из розетки!
|
|
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ноу проблем.
держите исходники проекта: TransformDataFileExample_SOURCES.rar exe-шник: TransformDataFileExample_EXE.rar код там такой: Код:
разумеется, открытие файла нужно делать через TOpenDialog, но мне лень и некогда. Оставляю косметические доработки на вашей совести! |
![]() |
![]() |
![]() |
#8 | |
Пользователь
Регистрация: 10.12.2012
Сообщений: 64
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 16.04.2007
Сообщений: 225
|
![]()
а я бы использовал PosEX было бы красии и меньше переменных использовалось...
|
![]() |
![]() |
![]() |
#10 |
Форумчанин
Регистрация: 17.03.2009
Сообщений: 977
|
![]()
формат стандартного csv файла. нафига его как то обрезать? если он сделан культурно по столбцам.
вообще любая уважающая себя база данных позволяет сделать этот экспорт и импорт, потом только колонки переименовать. или можно в ручную например с помощью exel или его аналога опен офиса. и работать потом только с нужными столбцами. так что либо 5 кликов в офисе либо куча проверок в дельфи. Прежде чем чего то писать, лучше подумать 30 мин, нет ли уже готовых решений данного действия.(с) основы планирования
Интуитивно понятный интерфейс - это такой интерфейс, для работы с которым нужна недюжинная интуиция.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Убрать лишнее | pruf | PHP | 24 | 06.09.2011 19:06 |
Нужно убрать лишнее!!! | Less1 | Помощь студентам | 10 | 26.06.2011 19:15 |
ColorBox - убрать лишнее | MyLastHit | Общие вопросы Delphi | 1 | 08.12.2010 08:49 |
Убрать лишнее | Айдар | Общие вопросы C/C++ | 1 | 17.09.2010 01:08 |
убрать лишнее из программы | dragun4ik | Помощь студентам | 2 | 30.01.2010 17:33 |