Форум
Написать нам
  • Страница 1 из 2
  • 1
  • 2
  • »
Архив - только для чтения
Форум MMB » Всё остальное » Мусорка » Загрузка текста с файла (LoadText)
Загрузка текста с файла
Sam726Дата: Суббота, 17 Октября 2009, 17:26 | Сообщение # 1
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Потскажите. Как загрузить текст. Пример:
Я в верхнем уровне написал текст. И хочу что бы его можно было изменять через внешний файл.


 
DEMBELДата: Суббота, 17 Октября 2009, 17:37 | Сообщение # 2
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Мы же кажется предлагали почитать справку про команды LoadText и StrFromFile
path$ = 'c:\myfile.txt'
LoadText("Text1","STRING:path$"), где Text1 это имя обьекта в который загружать текст
Если требуется загрузить конкретную текстовую строку из файла со множеством строк, то используй StrFromFile




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
YURIYДата: Суббота, 17 Октября 2009, 17:38 | Сообщение # 3
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Я тебе в той теме показывал, как через LoadText загрузить. И в той же теме DEMBEL написал вторую команду тебе StrFromFile.

И ещё. Скачай справку наконец.



Вечная память Андрею Сергееву!
 
Sam726Дата: Суббота, 17 Октября 2009, 17:53 | Сообщение # 4
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
DEMBEL, не ведется. У меня ж получается что текстовый объект находится в верхней части (там где все объекты отображаются поверх остальных). А запуск то идет со среднего.

 
YURIYДата: Суббота, 17 Октября 2009, 17:56 | Сообщение # 5
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Mad-Dog, что ты понимаешь под "верхней частью"? Master Top Layer?

Тогда так:

Code
LoadText("Master Layer::Text1","STRING:path$")



Вечная память Андрею Сергееву!
 
RushДата: Суббота, 17 Октября 2009, 18:01 | Сообщение # 6
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (Mad-Dog)
У меня ж получается что текстовый объект находится в верхней части (там где все объекты отображаются поверх остальных). А запуск то идет со среднего.

Вот убей меня Бог, если я что-то понял... :)
Удивительно, как часто люди свои мысли не могут сконвертировать в слова.

Добавлено (17 Октябрь 2009, 18:01)
---------------------------------------------

Quote (YURIY)
Master Top Layer?

Блин, Юра, из тебя хороший переводчик на русский получается. :)
 
Sam726Дата: Суббота, 17 Октября 2009, 18:20 | Сообщение # 7
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Ну извеняйте. Как могу так и выражаюсь. У меня русская версия(видно с немного неудачным переводом).
Не пашет оно так:
Code
path$ = 'd:\en.txt'
LoadText("Master Layer::Text1","STRING:path$")

А вот так пашит
Code
SongListLoad("d:\ru.txt","")
LoadText("Master Layer::File","STRING:<List>1")


 
YURIYДата: Суббота, 17 Октября 2009, 18:31 | Сообщение # 8
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Ну и наколол ты дров... Ты вообще знаешь для чего используется SongList? :)

Code
LoadText("Master Layer::File","d:\en.txt")

Вот так.



Вечная память Андрею Сергееву!
 
Sam726Дата: Суббота, 17 Октября 2009, 18:41 | Сообщение # 9
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Знаю-знаю. Это именно то что мне надо. Да он пашет "LoadText("Master Layer::File","d:\en.txt")". Возможноя в первый раз я что-то не то сделал. Но если писать этот код, тогда мне прийдется делать для каждого файла свой файл с текстом. А через SongListLoad, я все это помещу в один так называемый языковый файл. Нетак ли? :)
Кстати. А в ToolTip можно так же менять текст?


 
YURIYДата: Суббота, 17 Октября 2009, 18:45 | Сообщение # 10
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Mad-Dog)
тогда мне прийдется делать для каждого файла свой файл с текстом

Тогда работать нужно вот с этим:

Quote (YURIY)
И в той же теме DEMBEL написал вторую команду тебе StrFromFile.

А SongList - это вообще внутренний список аудио-файлов для дальнейшей работы с ними (проигрывания, например).

Quote (Mad-Dog)
Кстати. А в ToolTip можно так же менять текст?

Откуда в MMB ToolTip?



Вечная память Андрею Сергееву!
 
RushДата: Суббота, 17 Октября 2009, 18:49 | Сообщение # 11
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Вообще-то, я тоже часто использовал SongListLoad для быстрого доступа к строкам файла. :) К объекту SongList функция имеет отношение постольку-поскольку.
Quote (YURIY)
Откуда в MMB ToolTip?

Всплывающая подсказка к объектам...

Добавлено (17 Октябрь 2009, 18:49)
---------------------------------------------
Менять текст там не получится. Я где-то писал на форуме про локализацию проектов. Должна быть тема.

 
YURIYДата: Суббота, 17 Октября 2009, 18:51 | Сообщение # 12
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Rush)
Вообще-то, я тоже часто использовал SongListLoad для быстрого доступа к строкам файла.

Тогда они сидят в памяти. Не рационально pardon

Quote (Rush)
Всплывающая подсказка к объектам...

Аа, я не то подумал. Нет, её на лету менять нельзя. Используй плагин:

http://www.mmbforums.com/ipb/index.php?showtopic=19129



Вечная память Андрею Сергееву!
 
RushДата: Суббота, 17 Октября 2009, 19:01 | Сообщение # 13
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (YURIY)
Тогда они сидят в памяти. Не рационально

Скорость работы функции на порядок выше подгрузки из файла построчно.
И не сидит это в памяти дольше чем тебе нужно - SongListReset().
 
Sam726Дата: Суббота, 17 Октября 2009, 19:03 | Сообщение # 14
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Rush, да-да. Это кстати написано в справочнике самого MMB :D

 
YURIYДата: Суббота, 17 Октября 2009, 19:04 | Сообщение # 15
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Rush)
Скорость работы функции на порядок выше подгрузки из файла построчно.

Так постой. Ему нужная определённая строка в зависимости от выбранного языка. Зачем грузить все строки, когда нужна одна? :) А с твоим утверждением полностью согласен! yes

Quote (Rush)
И не сидит это в памяти дольше чем тебе нужно - SongListReset()

Но не все это делают и понимаю - вот в чём прикол ;)



Вечная память Андрею Сергееву!
 
RushДата: Суббота, 17 Октября 2009, 19:10 | Сообщение # 16
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (YURIY)
Ему нужная определённая строка в зависимости от выбранного языка. Зачем грузить все строки, когда нужна одна?

А мне показалось, что это для локализации приложения на рус/енгл.
И там нужно весь языковой модуль загружать...
 
YURIYДата: Суббота, 17 Октября 2009, 19:12 | Сообщение # 17
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Именно. Но это

Quote (YURIY)
Ему нужная определённая строка в зависимости от выбранного языка.

я понял из слов:

Quote (Mad-Dog)
тогда мне прийдется делать для каждого файла свой файл с текстом. А через SongListLoad, я все это помещу в один так называемый языковый файл

Только для каждого "языка", а не "файла".

Отсюда чётко видно, что для каждого языка будет занята одна строка.



Вечная память Андрею Сергееву!
 
RushДата: Суббота, 17 Октября 2009, 19:18 | Сообщение # 18
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (YURIY)
Отсюда чётко видно, что для каждого языка будет занята одна строка.

Мне-то точно не очень четко... :)
 
Sam726Дата: Суббота, 17 Октября 2009, 19:18 | Сообщение # 19
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
YURIY, Бррр!!! Я что-то запутался. Я хочу сделать один файл language.txt и в нем будет построчно написан текст. Через SongListLoad я буду загружать нужную мне строчку. А через твой код ведь так не получится, он загружает все содержимое language.txt. Правильно?

 
RushДата: Суббота, 17 Октября 2009, 19:29 | Сообщение # 20
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (Mad-Dog)
Через SongListLoad я буду загружать нужную мне строчку. А через твой код ведь так не получится, он загружает все содержимое language.txt. Правильно?

Через SongListLoad ты загружаешь весь файл во внутренний список. Он, по сути, представляет из себя массив. И нужную строчку ты просто вытаскиваешь из этого массива при помощи <List>номер.
Через LoadText ты загружаешь тоже весь файл (лимитированной длины), но в текстовую переменную.

Добавлено (17 Октябрь 2009, 19:29)
---------------------------------------------
Загрузить одну строку можно при помощи StrFromFile

 
YURIYДата: Суббота, 17 Октября 2009, 19:29 | Сообщение # 21
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Rush)
Мне-то точно не очень четко...

То есть, мне, как переводчику, виднее что ли? :D

Quote (Mad-Dog)
Через SongListLoad я буду загружать нужную мне строчку

Да ну глупостями ты занимаешься.

Прочти наконец описание команды StrFromFile. Зачем загружать ВЕСЬ файл, чтобы выдрать из него ОДНУ строку???



Вечная память Андрею Сергееву!
 
DEMBELДата: Суббота, 17 Октября 2009, 19:40 | Сообщение # 22
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Такой ерундовый вопрос, сделать локализацию... Ну Mad-Dog, чего тут непонятного, логически мысли. Собери все имена текстовых полей которые надо заменить, переименуй их по порядку Text1, Text2... TextN потом запиши в языковой файл в строках перевод этих полей, номер строки соответствует числу N в имени обьекта. Затем в цикле достаешь по строке (или грузишь весь файл в список) и присваиваешь (сопоставляешь) номер строки N с соответствующим именем обьекта. Счетчик цикла одновременно служит подставляемой переменной N:

langfile$='\English.lng'
For N=1 To NOL(langfile$)
lang$[N]=StrFromFile(langfile$,N,1)
Text$='Text'+CHAR(N)
LoadText("Text$","lang$[N]")
Next N

В результате будешь загружать первую строку файла в обьект Text1, вторую строку в обьект Text2 и т.д...




Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Sam726Дата: Суббота, 17 Октября 2009, 19:40 | Сообщение # 23
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
YURIY, у меня ж этой команды нет :D . Щас. Я уже скачал mmb49813. Кину на сервер пусть проверят >( ,может поставлю.

 
YURIYДата: Суббота, 17 Октября 2009, 19:42 | Сообщение # 24
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Mad-Dog)
у меня ж этой команды нет

StrFromFile? Ты чего, это старинная команда. Есть у тебя всё.

Quote (DEMBEL)
Такой ерундовый вопрос, сделать локализацию...

Да не нужна ему локализация, судя по всему. А только в один текстовый объект пихать текст в зависимости от языка!



Вечная память Андрею Сергееву!
 
DEMBELДата: Суббота, 17 Октября 2009, 19:49 | Сообщение # 25
Наш дизайнер
Группа: Модераторы
Сообщений: 2266
Репутация: 135
Награды: 32
Статус: Offline
Mad-Dog, русским языком можешь в целом обрисовать задачу, сколько текстовых обьектов у тебя, сколько языков... Ниче не понятно че ты хочешь дальше делать, а как взять из файла строку тебе сто раз обьяснили. А то мы тут вынуждены гадать сидеть, что надо человеку...



Win7x64 SP1 Neobook v5.70 (Trial)
WinXP SP3 Neobook v5.62
 
Sam726Дата: Суббота, 17 Октября 2009, 19:51 | Сообщение # 26
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
Щас момент...

 
RushДата: Суббота, 17 Октября 2009, 19:53 | Сообщение # 27
Обозреватель-консультант
Группа: Проверенные
Сообщений: 216
Репутация: 10
Награды: 1
Статус: Offline
Quote (DEMBEL)
Такой ерундовый вопрос, сделать локализацию...

Точно. Нашел тему - http://mmbuilder.ru/forum/26-320-1
Я ж говорил, что где-то тут мой скрипт должен валяться.
Еще со старого форума, до падения...
 
Sam726Дата: Суббота, 17 Октября 2009, 19:59 | Сообщение # 28
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
YURIY, Нету у меня этой функции: StrFromFile. Возможно именно ее мне и не хватает...

Добавлено (17 Октябрь 2009, 19:59)
---------------------------------------------
Rush, ну и что это там такое?

Добавлено (17 Октябрь 2009, 19:59)
---------------------------------------------
И оно будет пахать?


 
YURIYДата: Суббота, 17 Октября 2009, 20:01 | Сообщение # 29
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
Quote (Mad-Dog)
Нету у меня этой функции: StrFromFile

Капец. Не будет её там, где ты смотришь. А смотришь ты в мастере сценариев.

Чёрт возьми, ты справку можешь почитать, как ей пользоваться???

Добавлено (17 Октябрь 2009, 20:01)
---------------------------------------------

Quote (Mad-Dog)
Rush, ну и что это там такое?

И оно будет пахать?

Я плачу! :'(

Короче, мужики. Или ниже я вижу полное описание проблемы, как просит DEMBEL, или я отправляю тему в мусорку... Сил моих нет, честное слово :(



Вечная память Андрею Сергееву!
 
Sam726Дата: Суббота, 17 Октября 2009, 20:10 | Сообщение # 30
Поднаторевший
Группа: Проверенные
Сообщений: 141
Репутация: 0
Награды: 0
Статус: Offline
redface
О-хо-хо... Я ж уже писал. Лучше объясните как пользоватся StrFromFile.


 
Форум MMB » Всё остальное » Мусорка » Загрузка текста с файла (LoadText)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: