Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Для новичков > Работа с файлом.


Автор: alexey4251 11.2.2011, 21:43
И так всем привет собсно, кто читает эту тему.
Я стал писать эту программу для игры, как дополнительный инструментарий.
Выдержка с игрового форума.
___________________________________________________________________
Всем известно, что копаться в настройках оружия или танков не приятно.
Бегать в строчках и прописывать настройки длинны выстрелов и прочей фигни. Так вот, решил я создать программу, которая будет для меня особо ленивого и для вас делать, все по щелчкам мыши. А так же для новичков модмейкеров... Да-да.
И тут я стал творить...(начал программировать совсем не давно) Создал для начала что-то на подобие текстового редактора, прописал туды все основные функции...НО Совсем не продумал, как данные вводимые пользователем будут вводится в шаблон деф файла-(файла настроек)
Сама реализация программы такая:
1)Открываем программу
2)Нажимаем создать def файл
3)Нам предлагают создать для танка или пехоты (оружия)
4)Если стрелкового оружия, то какой тип? Автоматический режим огня или одиночный? Выбираем, то что надо.
5)В этом действии нам уже предлагают выбрать разброс, дальность, кол-во патронов в обойме и т.д
6)Нажимаем создать и на выходе получаем готовый дэф.
Так вот я застрял на стадии разработки шаблона.  Если не понятно объяснил, то могу еще раз. Очень прошу помочь с реализацией.
http://radikal.ru/F/s002.radikal.ru/i198/1102/36/6f308b7f2da0.jpg.html

Автор: Keeper89 12.2.2011, 01:01
Цитата(alexey4251 @  11.2.2011,  21:43 Найти цитируемый пост)
Так вот я застрял на стадии разработки шаблона

На каком пункте конкретно?
Прежде всего нужно понять структуру файла. Собственно, какая она?

Автор: alexey4251 12.2.2011, 01:21
Ладно вот к примеру шаблон из игры к оружию.
Код

{from "pattern smg" тип оружия
    {filling "ammo pistol" 30} -число 30 ко-во патронов
    {mass 5} -масса
    {entity "m4"} название
    {fireSound    "smg/M4"}
    {reloadSound "mp44"}
    {speed 330}    скорость пули

    {recoveryTime 0.15}

    {aimRange 100}    ; == maxRange
    {maxRange 100}
    {spreading 1
        {BurstAccuracy 100 92 84 76 68 60}
        {SpreadPower    1}
        {SpreadXYRatio    1.5} разброс
        {SpreadYadjust    0.25}    
    }
    {burst
        {short 3 1}
        {long 8 1}
    }
    {healthDamage 75} урон здоровью
    ("accuracy_carabine")
}


Так вот я имею в виду такую структуру файла весь этот шаблон скрыт от пользователя, а данные по кол-ву патронов, разброса мы вбиваем в поля. Потом нажимаем записать и он нам выдает новый файл с новыми данными.

Автор: Evghenusi 12.2.2011, 02:22
а не проще записывать в *.ini файл, либо используя такую же структуру.

Автор: alexey4251 12.2.2011, 02:26
Учитывая, что я совсем новенький в программировании в дельфи, я не очень понимаю смысл того, что вы сказали.
Хотелось бы реализовать в виде работы с файлами.

Автор: northener 12.2.2011, 02:51
Цитата(alexey4251 @  12.2.2011,  02:26 Найти цитируемый пост)
Учитывая, что я совсем новенький в программировании в дельфи, я не очень понимаю смысл того, что вы сказали.
Хотелось бы реализовать в виде работы с файлами. 

http://forum.vingrad.ru/articles/topic-197956.html

Автор: Keeper89 12.2.2011, 10:51
При чем тут ИНИ, если с файла определенная структура?

Автор: THandle 13.2.2011, 13:18
Если файл текстовый, то с ним можно работать с помощью http://forum.vingrad.ru/articles/topic-208756.html.
Если бинарный то с помощью http://forum.vingrad.ru/articles/topic-211911.html, http://forum.vingrad.ru/forum/topic-250409.html.

А вообще можно прикрепить пример файла к посту, а то лично я не до конца понял проблему.

Автор: northener 13.2.2011, 15:10
Цитата(THandle @  13.2.2011,  13:18 Найти цитируемый пост)
А вообще можно прикрепить пример файла к посту, а то лично я не до конца понял проблему. 

Имхо, пример файла автор и ищет тут.

Автор: alexey4251 13.2.2011, 17:17
Примерно так должна работать, могу нарисовать еще раз по другому если не ясно. ))
http://radikal.ru/F/s008.radikal.ru/i306/1102/a3/3cc07e04c125.jpg.html
Трудно просто нонче новичку найти нужный исходник или разобраться в запутанности действий.
Я не прошу сделать ее для меня, просто для меня нужен пример такой вот записи.

Автор: Keeper89 13.2.2011, 19:44
alexey4251, прикрепи файл, ибо не видно чем так конкретно разделены символы.

Автор: alexey4251 13.2.2011, 20:10
 файл шаблона тот который на скриншоте?
Или скриншот?

Автор: kami 13.2.2011, 20:20
Вообще не понимаю, в чем проблема с этим файлом  smile Структура ведь постоянная, насколько я понял, тогда на каком этапе загвоздка? Я бы сделал так:
1. создать record с полями, указанными в файле
2. создать процедуры SaveToFile(AmmoRecord; FileName) и loadFromFile(var AmmoRecord; FileName);
3. создать процедуры FillFormFromRec и FillRecFromForm.

Автор: superVad 13.2.2011, 21:27
Цитата(kami @  13.2.2011,  19:20 Найти цитируемый пост)

1. создать record с полями, указанными в файле
2. создать процедуры SaveToFile(AmmoRecord; FileName) и loadFromFile(var AmmoRecord; FileName);

Тогда уже лучше объект с методами SaveToFile(AmmoRecord; FileName) и loadFromFile(var AmmoRecord; FileName).

Автор: Keeper89 13.2.2011, 22:29
Цитата(alexey4251 @  13.2.2011,  20:10 Найти цитируемый пост)
файл шаблона тот который на скриншоте?

да
Цитата(kami @  13.2.2011,  20:20 Найти цитируемый пост)
насколько я понял, тогда на каком этапе загвоздка

на этапе 2 и 3 как я понял

Автор: alexey4251 13.2.2011, 22:48
Прикладываю.

Автор: Keeper89 13.2.2011, 23:05
alexey4251, 
kami предложил план, какие вопросы?

Автор: alexey4251 13.2.2011, 23:38
Прочитав пост kami  я ни фига не понял. Пробовал читать напутствующий материал. 3 недели за программированием, что уж взять.  smile 
Оффтоп... Единственную программу, которую написал сам посредством обучения  рассматривания исходники это вычисление площади трапеции. Но ведь нужно двигаться дальше да? Может подскажите что-то напутствующие?

Автор: HoZeY 14.2.2011, 00:14
alexey4251, постучи в асю 743-348, есть мысль.

Автор: superVad 14.2.2011, 00:17
alexey4251, возьми книжку по делфи. Почитай про работу с файлами. Заодно про записи и объекты можно. Про TStringList почитай - через него можно с файлами работать...

Автор: Keeper89 14.2.2011, 00:39
alexey4251, будет время - накидаю пример.

Автор: alexey4251 14.2.2011, 01:08
Цитата(Keeper89 @ 14.2.2011,  00:39)
alexey4251, будет время - накидаю пример.

Спасибо, буду очень признателен вам.

Автор: northener 14.2.2011, 01:30
Цитата(alexey4251 @  13.2.2011,  23:38 Найти цитируемый пост)
Прочитав пост kami  я ни фига не понял. Пробовал читать напутствующий материал. 3 недели за программированием, что уж взять.


Цитата(alexey4251 @  14.2.2011,  01:08 Найти цитируемый пост)
Цитата(Keeper89 @ 14.2.2011,  00:39)
alexey4251, будет время - накидаю пример.

Спасибо, буду очень признателен вам

Лучше всё-таки где-нибудь найти книжку по Паскалю/Дельфи. И прочитать её. И на первое время всегда держать её под рукой. Иначе примеры будут скорее вредны, чем полезны.

Автор: Keeper89 14.2.2011, 13:58
Это конечно надо, но без примеров с нашими книгами аля хелп на русском, далеко не уедешь

Автор: alexey4251 20.2.2011, 13:31
Так, как господа поможете? smile 

Автор: Keeper89 20.2.2011, 14:55
alexey4251, накидал http://files.mail.ru/K2JHZ9, смотри.

Автор: alexey4251 21.2.2011, 08:55
большое спасибо!!! Буду разбираться! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)