Навигация
Поддержать материально
Steam Greenlight

Логотипы
Медальки
Гость
Имя

Пароль



Вы не зарегистрированны?
Нажмите здесь для регистрации.

Забыли пароль?
Запросите новый здесь.
Темы форума
187 - ?
30.10.2024
 Mefistofel
Galactic Showdown -…
21.10.2024
 KregHek
Новый IGDC
5.08.2024
 rimush
186 - Strategy!
15.07.2024
 VoroneTZ
WoL
3.07.2024
 Darthman
Привет выжившие
21.05.2024
 GeePee
185 - RPG
9.02.2024
 Vaskrol
В каком банке открыт…
24.01.2024
 Darthman
185 - ?
30.12.2023
 Mefistofel
TESTAMENT - Тактичес…
15.11.2023
 KregHek
Сейчас на сайте
Гостей: 45


Пользователей: 1,790
новичок: Durved
Обсуждение «Парсинг строк.»
Страница 2 из 2 < 1 2
JKot
Avatar пользователя

Опубликовано 09.11.2012 04:17 (12 лет назад)    #
Не понимаю зачем выдумывать свой формат? На работе пользуемся YAML для описания всех обьектов на сцене, выглядит как-то так:
---
class: SEMovingObject
name: obj3_3
settings:
spriteName: hillObject3_3.png
position: {x: 180, y: 168}
anchorPoint: {x: 0.5, y: 0.5}
scale: 1.0
finalScale: 1.0
z0rder: 1

---
class: SEObjectsHolder
name: holder
settings:
zOrder: 2
target: viewContainer.node
spriteName: objectsHolderHorizontal.png
anchorPoint: {x: 0.5, y: 0.0}
position: {x: 0, y: 0, alignX: center}
hideposition: {x: 0, y: -400, alignX: center}
continueSignal: showerSignal
holderEndSignal: winSignal
nextScene: winterBoyVictoryArena
groups:
-
settings: {waitForSignal: true}
places:
- {x: 480, y: 88, alignY: up, z0rder: -2}
objects:
- obj1_1
- obj1_2
- obj1_3
-
settings: {}
places:
- {x: 190, y: 250, alignY: up, z0rder: -2}
objects:
- obj3_1
- obj3_2
- obj3_3
-
settings: {}
places:
- {x: 480, y: 290, alignY: up}
objects:
- obj2_1
- obj2_2
- obj2_3


что ещё нужно?
Shirson
Avatar пользователя

Опубликовано 09.11.2012 14:37 (12 лет назад)    #
JKot написал:
Не понимаю зачем выдумывать свой формат? На работе пользуемся YAML для описания всех обьектов на сцене...
что ещё нужно?

Что-то, что позволит ЭТО использовать в программе на Делфи :) Без тонны дополнительных ДЛЛ, многометровых библиотек и пр.
Есть солюшн? Давай, чего ждать :)
Zer0
Avatar пользователя

Опубликовано 09.11.2012 17:00 (12 лет назад)    #
http://www.webdelphi.ru/2011/10/rabota-s-json-v-delphi-2010-xe2/
Shirson
Avatar пользователя

Опубликовано 09.11.2012 19:38 (12 лет назад)    #
Это всё-таки ЯЗОН, и основной материал идёт по Делфи 2009+, а я пользую v6.

Ладно, суть понятна - ложки нет. Мне будет проще свой парсер написать, который будет удовлетворять ровно моим требования.
Dj_smart
Avatar пользователя

Опубликовано 10.11.2012 19:59 (12 лет назад)    #
Могу предоставить свой разработанный формат с иерархией, парсер к нему и экспортер в этот формат из ini-файла, как я писал выше. Юнит очень функционален, позволяет получить child текущего элемента, значения элементов в любом формате, например:
SomeUnit
  FileName = as/script.js
  Function = somefunc
  Args
    text = lol
    count = 15

Экспортируется в файл .db, который обрабатывается кодом очень легко:
var db: TDataBase;
    args: TDBRecord;
begin
  db := TDataBase.Create('file.db');
  if db.IsLoadedWith('SomeUnit') then begin
    a := db.Root.ChildByName['FileName'].AsString; // as/script.js
    b := db.Root.ChildByName['Function'].AsString; // somefunc
    args := db.Root.ChildByName['Args'];
    c := args.ChildByName['text'].AsString; // lol
    d := args.ChildByName['count'].AsInteger; // 15
  end;
  db.free;

И тд, умеет сохраняться, автоматически создает ноды, есть обращаться к несуществующим, можно обращаться и так:
db.Root.ChildByName['FileName.Args.count'].AsFloat; // будет переконвертировано из int в float
RichDad
Avatar пользователя

Опубликовано 12.11.2012 09:54 (12 лет назад)    #
Dj_smart написал:
Могу предоставить свой разработанный формат с иерархией, парсер к нему и экспортер в этот формат из ini-файла

А кстати, это ж идея.
В Delphi есть встроенный TIniFile - для работы с ini файлами. Просто поменять названия секций - и вуаля!

Имеем:
Player
__Name = John
__HP = 50
__Weapons
____Pistol = 100
____Bazooka = 4


Получаем в обычном ini-файле:
[Player]
Name=John
HP=50
[PlayerWeapons]
Pistol=100
Bazooka=4


P.S. НЕ смотрите на _ (это у меня почему-то пробелы не вставляются в сообщение)
Doj
Avatar пользователя

Опубликовано 12.11.2012 11:16 (12 лет назад)    #
0nni написал:
Doj, хехе я тоже на один из конкурсов писал свой простенький интерпретатор, в результате карты как-то так выглядели:
4 "blood" 4 1 insert
4 "blood" 4 4 insert
4 "blood" 5 1 insert
4 "blood" 5 4 insert
"" "3 \"blood\" 4 1 insert
3 \"blood\" 4 4 insert
3 \"blood\" 5 1 insert
3 \"blood\" 5 4 insert" 0 1 timer
"" "2 \"blood\" 4 1 insert
2 \"blood\" 4 4 insert
2 \"blood\" 5 1 insert
2 \"blood\" 5 4 insert" 0 2 timer
"Вот тебе в награду четыре помошницы" msg
1 4 do
dup !a
"fangirl" "" "\"Похоже твою напарницу убили.\" msg" 0 @a InsertEx 1 !Team
loop
2 "MapZombiesCount" !Global
"zombie" "" "onDie" 2 2 insertEx drop
"zombie" "" "onDie" 2 3 insertEx drop
3 2 solid
3 3 solid
1 2 solid
1 3 solid
3 5 clear
3 0 clear



Постфиксная нотация, лови респект \m/

редакция от Doj, 12.11.2012 11:16

Shirson
Avatar пользователя

Опубликовано 12.11.2012 14:59 (12 лет назад)    #
RichDad написал:
В Delphi есть встроенный TIniFile - для работы с ini файлами. Просто поменять названия секций - и вуаля!


Вторая строка стартового сообщения:
Что-то посложнее Key=Value

С этого самого "вуаля" я начинал и текущая версия использует именно его, но требуется что-нибудь по-мощнее и по-гибче.
Zer0
Avatar пользователя

Опубликовано 12.11.2012 15:45 (12 лет назад)    #
Чисто из спортивного интереса могу набросать С# yaml->bin аппликуху. И из дельфы потом читать все это счастье.
Только каждый раз после редактирования придется запускать тулзу для конверта. Впрочем эт просто.
Shirson
Avatar пользователя

Опубликовано 12.11.2012 15:47 (12 лет назад)    #
Да не нужно, всё уже прояснилось и решение принялось, спасибо
Страница 2 из 2 < 1 2
Перейти на форум:
Конкурсы
Открытые конкурсы:
Активных нет
Недавние конкурсы:
 186 - Strategy
 185 - RPG XII
 184 - Arcade II
 183 - Novel
 182 - RPG XI
 Все конкурсы
Случайная игра
Мини-чат
Вам необходимо залогиниться.

Архив чата

26,158,579 уникальных посетителей

Создано на базе русской версии PHP-Fusion copyright © 2003-2006 by Nick Jones.
Released as free software under the terms of the GNU/GPL license.