|
Вопрос # 5 946/ вопрос открыт / |
|
Ку, господа эксперты)
я пытаюсь обучаться программированию (с переменным успехом). в частности, на делфи. пытаюсь вот написать программулю, но никак не могу найти подхода к ней - отовсюду получается какая-то жуть.
вообщем, суть:
есть набор строк, хранящихся в тхт файле. каждой строке присвоен определенный срок жизни, совершенно рандомный, например с 13 февраля до 17, потом отдельно в 25 и 28 (сроки в файл не входят).
программа должна убирать из файла те строки, в сроках которых нету текущей даты.
пришел вот к чему: нужен типизированный файл, в котором будут храниться записи (record), состоящие из самой строки + динамический массив из дат TDate. т.к. я с типизированными файлами еще не сталкивался, то для меня они очень страшные и жуткие.
вообщем чего спросить хотел-то... мои мысли верны? [s]или я нуб и ламер и вообще фигню какую-то пытаюсь тут написать[/s]
не судите строго)
 |
Вопрос задал: KILLandEAT (статус: Посетитель)
Вопрос отправлен: 12 февраля 2012, 00:27
Состояние вопроса: открыт, ответов: 0.
|
Мини-форум вопроса
Всего сообщений: 25; последнее сообщение — 19 февраля 2012, 20:47; участников в обсуждении: 4.
Страницы: [1] [2] [Следующая »]
|
Мережников Андрей (статус: Абитуриент), 12 февраля 2012, 08:05 [#1]:
1. исходный файл создается Вами или чужой программой?
2. где хранятся даты?
3. почему динамические массивы? есть представление что это такое?
4. динамические массивы в типизированных файлах не хранятся - компилятор просто не пропустит описание такого файла.
|
|
KILLandEAT (статус: Посетитель), 12 февраля 2012, 11:53 [#2]:
1 исходный файл сейчас создается мной, считывается другой программой. имеет вид:
text# строка_1
text# строка_2
...
text# строка_n
количество строк n постоянно меняется (добавляются новые, удаляются старые)
2 даты хранятся грубо говоря на листочке) вся соль будущей программы какраз в том, чтобы один раз ввести запись(строка+массив дат), а программа сама уже решает, когда эту строку выдать.
3 про динамические массивы (мб что-то путаю) прочитал только вчера. это массив с неопределенным количеством записей. (DateMas : array of TDate) количество ячеек определяется уже непосредственно перед вводом функцией SetLength(DateMas, n). оно? просто не представляю, где еще можно хранить кучу дат неопределенного количества.
4 шожемнеделать?
|
|
bugmenot (статус: 3-ий класс), 12 февраля 2012, 15:59 [#3]:
нее, типизированные файлы - для данных фиксированного размера
а так - хранить кол-во N, а потом непрерывно N элементов
виконання програми розпочинається з того самого мiсця, де призупинилося.
|
|
eclipse (статус: Посетитель), 12 февраля 2012, 16:01 [#4]:
Неее... ты не в ту сторону гнёшь. Не нужно тебе использовать record или array(массив). там всё должно делаться намного проще... скинь этот файл(txt).
|
|
Мережников Андрей (статус: Абитуриент), 12 февраля 2012, 16:02 [#5]:
как определяется номер строки - фактическим ее положением в файле? Было бы проще дать совет, если знать - для чего все это нужно. Как в дальнейшем будет заполняться текстовый файл - программно или вручную? Какое количество строк предполагается в файле?
|
12 февраля 2012, 16:12: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Работа с файловой системой модератором Ерёмин А.А. Причина: Пусть здесь будет, пожалуй.
|
eclipse (статус: Посетитель), 12 февраля 2012, 17:10 [#6]:
KILLandEAT ты напиши примерю.... а мы уж потом рапедалим!
|
|
KILLandEAT (статус: Посетитель), 12 февраля 2012, 18:28 [#7]:
2 eclipse
формат тхт написал в своем втором сообщении. даты хранятся отдельно в екселевском файле (формат строка-период, но это не принципиально где хранить.) на основании этого ексель файла я уже вручную редактирую исходный тхт файл. вот этот процесс я и хочу автоматизировать, всунув в мою программу список из строк-периодов, а программа уже сама будет убирать или добавлять строки в исходный файл. также нужна функция добавления новых строк-периодов.
2 Мережников Андрей
да, нумерация тоже нужна. иногда бывают строки, у которых задано конкретное положение (вверху, второй, или 2 раза с разницей в несколько строк), но это уже не так важно. главное начать, а там уже и с нумерацией разобраться проще будет).
используется это все в телевидении (рекламая бегущая строка)
про заполенние написал выше.
количество строк не ограничено, но не превышает 20.
|
|
Мережников Андрей (статус: Абитуриент), 12 февраля 2012, 18:50 [#8]:
Вопрос про номер строки важен - поскольку, если номер строки определяется только фактическим ее положением в файле, то он будет меняться при каждой модификации (удалении строк) из исходного файла. Не рекомендую использовать для хранения формат Excel, т.к. программа не сможет работать без установленного на компьютере Excel, либо придется искать способы работать с экселевскими файлами без самого Excel. На самом деле проще сразу определить структуру хранения данных, чем потом переделывать программу.
|
|
eclipse (статус: Посетитель), 14 февраля 2012, 19:19 [#9]:
Так, вроде, на эту тему много есть материала в сети. Или вы просто не можете понять принцип работы с excel и прочим?
|
|
KILLandEAT (статус: Посетитель), 14 февраля 2012, 20:19 [#10]:
не совсем понимаю, что делать с екселем. он будет выполнять роль "типизированного файла" и просто хранить инфу записей? или тут записи и массивы не понадобятся, и будет использоваться хитрый ексель? (сорри если что за нубство, прост сейчас времени нормально погуглить нету )
|
|
Мережников Андрей (статус: Абитуриент), 14 февраля 2012, 20:33 [#11]:
не нужен тут эксель совсем. Сколько, ориентировочно, предполагается записей с датами?
|
|
KILLandEAT (статус: Посетитель), 14 февраля 2012, 21:45 [#12]:
+-20строк.
|
|
Мережников Андрей (статус: Абитуриент), 14 февраля 2012, 21:59 [#13]:
тогда можно и типизированный файл использовать, чтобы сильно не заморачиваться. Заодно научитесь с файлами работать и массивами 
type a=record
nms:integer;//номер строки
dtb:TDate;//дата начала
dte:TDate;//дата окончания
end;
type f=file of a; //тип файла
|
|
KILLandEAT (статус: Посетитель), 14 февраля 2012, 22:45 [#14]:
датой начала/окончания тут не ограничишся. выше где-то писал, что даты не заданы одним отрезком. на них нужен массив, размер которого можно вычислить только после ввода строки/срока.
|
|
Мережников Андрей (статус: Абитуриент), 15 февраля 2012, 05:39 [#15]:
что-то не совсем понял - на каждую строку массив дат??? Какой смысл, особенно если строка уже удалена? Насколько я понял - нужен период жизни строки - дата начала и дата окончания, если текущая дата не укладывается в этот диапазон, то соответствующая строка удаляется, так?
|
|
KILLandEAT (статус: Посетитель), 15 февраля 2012, 16:59 [#16]:
[quote=KILLandEAT]есть набор строк, хранящихся в тхт файле. каждой строке присвоен определенный срок жизни, совершенно рандомный, например с 13 февраля до 17, потом отдельно в 25 и 28 (сроки в файл не входят).[/quote]
|
|
Мережников Андрей (статус: Абитуриент), 15 февраля 2012, 18:45 [#17]:
если строка "живет" с 13 по 17 февраля, после чего удаляется, то как она может "воскреснуть", чтобы жизнь продлилась 25 и 28? Нелогично как-то
|
|
KILLandEAT (статус: Посетитель), 16 февраля 2012, 00:51 [#18]:
мне это самому очень не нравится, но это одно из обязательных условий(
т.е. получается, что строку нужно "убивать" только после последней даты в массиве. а до этого, если текущего числа нету в списке, просто скрывать (удалять из тхт, но не саму запись)
|
|
Мережников Андрей (статус: Абитуриент), 16 февраля 2012, 19:02 [#19]:
Цитата (KILLandEAT):
(удалять из тхт, но не саму запись)
Это как? Что тогда удалять?
|
|
KILLandEAT (статус: Посетитель), 16 февраля 2012, 23:04 [#20]:
под записью я имею ввиду саму record, а под строкой- строку, хранящуюся в тхт файле
|
Страницы: [1] [2] [Следующая »]
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|