![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 09.07.2009
Сообщений: 22
|
![]()
Вот такая задача:
Есть исходный файл формата: текст текст текст 6920000;-1.06;0.00;0.00;0.00;0.00;-1.06;-227.06;0.00 6920000;-1.06;0.00;0.00;0.00;0.00;-1.06;-227.06;0.00 6920000;-1.06;0.00;0.00;0.00;0.00;-1.06;-227.06;0.00 6920000;-1.06;0.00;0.00;0.00;0.00;-1.06;-227.06;0.00 Нужно из этого файла сформировать текстовый файл с разделителями ; формата: #текст SUMM #текст #текст TYPE 6920000;какой то текст,6920000;6920000;227.06; ------------- Из первого файла из всех строк нужно начать разбор с 3-ей строки, т.е. пропустить текст, взять число из первого столбца (6920000), и из 8-го (-227.06). Из 8-го сделать из отрицательного положительное (если положительное, то сделать отрицательное). В выходной файл нужно вывести первой строкой: #любой текст SUMM (SUMM - сумма из 8-го столбца с измененными значениями (+/-) ) Вторую строку сформировать как просто #текст Третью строку сделать следующим образом, чтобы выводилось: #текст TYPE (TYPE - значение, выбираемое из ComboBox) Ниже первым столбиком проставить значения из первого столбца исходного файла(6920000), во второй столбец записать какой то текст, и значение из первого столбца(текст, 6920000). В третий столбец поставить значения из первого столбца исходного файла(6920000), в 4-ый столбец поставить перевернутое число из 8-го столбца исходного файла (-227.06). Вот как реализовать данный вид программы? |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Можно загнать файл в какой-нибудь список - TStringList, TMemo, TStrings, TRichEdit - и там уже выбирать и издеваться над понравившимися строками.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 12.02.2007
Сообщений: 360
|
![]()
readln ам в помощь! Считываете строку в переменную, а потом делаете с ними чего хотите... Или можно создать вообще массив строк таким образом и работать с индексами:
Код:
Последний раз редактировалось Stilet; 09.07.2009 в 11:30. |
![]() |
![]() |
![]() |
#4 |
Пользователь
Регистрация: 09.07.2009
Сообщений: 22
|
![]()
А как проверить, что исходный файл имеет именно такой формат:
текст текст текст 6920000;-1.06;0.00;0.00;0.00;0.00;-1.06;-227.06;0.00 т.е. первые три строки именно текстовые, а четвертая имеет формат, представленный выше.. |
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 12.02.2007
Сообщений: 360
|
![]()
А что вы понимаете под текст? А на счет цифр - if not (x[i] in ['0'..'9','-', char(vk_back)]) then
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 09.07.2009
Сообщений: 22
|
![]()
Вы учитываете разделители между цифрами?
------ Под текстом я имею заголовок текстового файла, представленный в виде трех строк, например, построчно: 1. Файл: file.txt 2. Файл отправлен Васей 3. Файл получен Ваней 4. 6920000;-1.06;0.00;0.00;0.00;0.00;-1.06;-227.06;0.00 ...... и т.д. все строки после 4-ой имеют аналогичный формат 4-ой строки. |
![]() |
![]() |
![]() |
#7 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
![]()
Возможно в первых 3-х строках не встречаются символы последующих? Скажем ;? Тогда достаточно данный символ там не найти. Способ не точный, но учитывая имеющуюся информацию вполне сойдет.
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика ![]() |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
если начиная с четвертой строки идет определенный формат строк
то самое лучшее прочесть эту строку и выделить с нее данные(каждый элемент), если все элементы строки заполненны(например в каждой строке 8 элементов) и строка исходная после извлечения не имеет лишних символов(просто смотря как парсить), то строка наша/верная Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 09.07.2009
Сообщений: 22
|
![]()
А можно небольшой пример кода?
|
![]() |
![]() |
![]() |
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с файлами (Delphi 7) | сер4ей | Помощь студентам | 8 | 12.11.2011 19:11 |
Работа с файлами в Delphi 7 | NeAlSe | Помощь студентам | 11 | 19.11.2010 17:08 |
Delphi-работа с файлами,каталогами | POPOV | Помощь студентам | 6 | 30.11.2007 15:12 |