Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Работа с текстовым файлом, Вставить строку в нужное место 
V
    Опции темы
zhefran
Дата 23.10.2007, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



Есть такая задачка:
Нужно вставлять строку в определенное место в файле. Есть такие пункты в файле:
1. Евро;
2. Доллары;
3. Фунты;
4. Рубли.
Например, получаю цену в рублях. Мне необходимо вставить ее в файл в конце пункта рубли.
Получил 1235
Рубли:
3235
500
Вставить в эту строчку 1235
Доллары: 
5465
25
3
Что-то типа такого.
И еще если цена в такой валюте, которой в файле нет - то создать пункт  с такой валютой. 
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
VICTAR
Дата 23.10.2007, 16:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



используй TStringList. IndexOf для поиска. Insert для вставки.
PM MAIL   Вверх
zhefran
Дата 23.10.2007, 16:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



Использую TStringList and Insert.
В чем загвоздка - мне надо вставить перед следующим пунктом, какой это пункт мне неизвестно. Делать явную подпись "валюта" или что?
1. Искать сначала пункт "рубли"
2. Потом искать следующий пункт.
3. Вставлять перед следующим пунктом цену.
Так что ли?
Есть такие нюанси:
1. Что если пункт последний?
2. В Insert надо задавать конкретный номер строки, как вытянуть номер строки перед следующим пунктом?
  
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
VICTAR
Дата 23.10.2007, 16:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник
Сообщений: 1108
Регистрация: 6.10.2006

Репутация: 10
Всего: 80



Допустим IndexOf('Рубли')=2, дальше перебирай со второго индекса строки, и проверяй являются ли они числами, как дойдешь до "нечисла" или до конца вставляй свое значение.

Добавлено через 1 минуту и 29 секунд
Цитата(zhefran @  23.10.2007,  17:29 Найти цитируемый пост)
В Insert надо задавать конкретный номер строки

Перебирать будешь в цикле, так что номер строки у тебя будет
PM MAIL   Вверх
Alix
Дата 23.10.2007, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



иногда имеет смысл изменить формат хранения данных, чтобы было проще работать...


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
zhefran
Дата 23.10.2007, 17:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 237
Регистрация: 27.9.2007
Где: Винница-Киев-Ирпе нь-?, Украина

Репутация: нет
Всего: нет



Victar, как проверить число строка или нет? Пробывать перевести с помощью StrToInt?

Это сообщение отредактировал(а) zhefran - 23.10.2007, 17:17
--------------------
Ніщо нізвідки не виникає і нікуди не дівається!Лечение компьютеров от вирусов! Бесплатно!
PM MAIL WWW ICQ   Вверх
Alix
Дата 23.10.2007, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


L45
**


Профиль
Группа: Участник
Сообщений: 581
Регистрация: 4.5.2005
Где: Pskov/Spb

Репутация: 8
Всего: 23



Цитата(zhefran @  23.10.2007,  18:16 Найти цитируемый пост)
Victar, как проверить число строка или нет? Пробывать перевести с помощью StrToInt?

http://forum.vingrad.ru/index.php?showtopi...t&p=1293492


--------------------
Знание только тогда знание, когда оно приобретено усилиями своей мысли, а не памятью (с) Л. Толстой
High tech. Low live. (с) Gardner Dozois
PM MAIL ICQ Skype   Вверх
Lonley
Дата 24.10.2007, 08:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 7.10.2003
Где: северные ворота М урманск

Репутация: нет
Всего: 4



я бы отобразил файл в память CreateFileMapping // MapViewOfFile
и работал у же бы с памятью.... если файл не для чтения, а для хранения информации то можно ввести дополнительные управляющие символы или создать собственный формат хранения
---------
или каждый раз обновлять смещение относительно наименований валют


--------------------
Земную жизнь пройдя до половины,
Я очутился в сумрачном лесу,
Утратив правый путь во тьме долины.
Каков он был, о, как произнесу,
Тот дикий лес, дремучий и грозящий,
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0956 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.