Загрузка текста с файла
|
|
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 для быстрого доступа к строкам файла. Тогда они сидят в памяти. Не рационально 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
|
|
| |
YURIY | Дата: Суббота, 17 Октября 2009, 19:04 | Сообщение # 15 |
Злостный админ
Группа: Администраторы
Сообщений: 3018
Репутация: 71
Награды: 28
Статус: Offline
| Quote (Rush) Скорость работы функции на порядок выше подгрузки из файла построчно. Так постой. Ему нужная определённая строка в зависимости от выбранного языка. Зачем грузить все строки, когда нужна одна? А с твоим утверждением полностью согласен! 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) Мне-то точно не очень четко... То есть, мне, как переводчику, виднее что ли? 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, у меня ж этой команды нет . Щас. Я уже скачал 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
| О-хо-хо... Я ж уже писал. Лучше объясните как пользоватся StrFromFile.
|
|
| |