[Вопрос] работа с .txt
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 21:28:52 | Сообщение # 1 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| До меня дошёл слух, что можно использовать данные из .txt документов импортированных в карту во время игры, и что даже можно создавать .txt файлы в процессе игры.
Вопрос - правда ли это, и если да, то как это можно осуществить? Желательно с наглядным примером.
|
|
|
|
Ty3uK | Дата: Пятница, 10 Февраля 2012, 21:42:34 | Сообщение # 2 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки: ![](/scripts/images/ic_info.gif)
| С помощью PreloadStart() можно записать в файл. Подробностей не знаю, не пользовался. Ждем шарящих
|
|
|
|
Brut@lus | Дата: Пятница, 10 Февраля 2012, 21:46:45 | Сообщение # 3 |
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки: ![](/scripts/images/ic_info.gif)
| николас вроде тут понимает. и дуська
|
|
|
|
Dreii | Дата: Пятница, 10 Февраля 2012, 22:02:52 | Сообщение # 4 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки: ![](/scripts/images/ic_info.gif)
| Code if (GetLocalPlayer() == p) { PreloadGenClear() PreloadGenStart() PreloadGenEnd("C:\\TEMP\\ARCHERSOFTHEISLAND') //Путь к файлу }
|
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 22:04:06 | Сообщение # 5 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| Quote (Dreii) Code if (GetLocalPlayer() == p) { PreloadGenClear() PreloadGenStart() PreloadGenEnd("C:\\TEMP\\ARCHERSOFTHEISLAND') //Путь к файлу } Quote (Cancel) Желательно с наглядным примером.
|
|
|
|
Ty3uK | Дата: Пятница, 10 Февраля 2012, 22:04:51 | Сообщение # 6 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки: ![](/scripts/images/ic_info.gif)
| Код- вполне себе наглядный пример -_-
|
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 22:05:54 | Сообщение # 7 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| Quote (Ty3uK) Код- вполне себе наглядный пример -_- Были бы комментарии какая функция что делает - быть может, а так наглядности не наблюдаю
|
|
|
|
Ty3uK | Дата: Пятница, 10 Февраля 2012, 22:07:09 | Сообщение # 8 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки: ![](/scripts/images/ic_info.gif)
| Я уже говорил, да и по логике и названиям можно понять. Для локального игрока чистим прелоад запись, начинаем запись и заканчиваем ее с указанием выходного файла
|
|
|
|
Dreii | Дата: Пятница, 10 Февраля 2012, 22:07:09 | Сообщение # 9 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки: ![](/scripts/images/ic_info.gif)
| edit.
Сообщение отредактировал Dreii - Пятница, 10 Февраля 2012, 22:15:07 |
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 22:10:43 | Сообщение # 10 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| Quote (Dreii) call PreloadGenEnd("C:\\TEMP\\ARCHERSOFTHEISLAND\\Profile.txt") //путь к файлу Я так понял - это путь к внешним данным. Каким должен быть путь, чтобы, например, открыть доступ к данным импортированного в карту .txt документа?.
Функция Preload("/"Я хочу загрузить этот текст из файла") - возвращает весь текст файла? Или лишь чеё часть, если часть - то каким образом они различаются функцией?
|
|
|
|
Dreii | Дата: Пятница, 10 Февраля 2012, 22:11:25 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки: ![](/scripts/images/ic_info.gif)
| Cancel, я там ошибся там не загружает а сохраняет)
|
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 22:12:05 | Сообщение # 12 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| Quote (Dreii) Cancel, я там ошибся там не загружает а сохраняет) И всё-таки, можешь немного подробнее описать процесс? Буду очень благодарен
|
|
|
|
Dreii | Дата: Пятница, 10 Февраля 2012, 22:16:29 | Сообщение # 13 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки: ![](/scripts/images/ic_info.gif)
| То что было выше неверно,я запутался со слешами)) Code if GetLocalPlayer() == Player then call PreloadGenClear() call PreloadGenStart() call Preload("\"\")\nЯ текст,яхочу записаться в файл profile.txt на диск C!") call PreloadGenEnd("C:\\Profile.txt") endif Добавлено (10 Февраль 2012, 22:16:29) ---------------------------------------------
Quote (Ty3uK) Для локального игрока чистим прелоад запись, начинаем запись и заканчиваем ее с указанием выходного файла
|
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 22:18:21 | Сообщение # 14 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| call Preload("\"\")\nЯ текст,яхочу записаться в файл profile.txt на диск C!") - в этой строке точно ошибок нет? Можно ли за одну запись записать несколько строк?
Code if GetLocalPlayer() == Player then call PreloadGenClear() call PreloadGenStart() call Preload("\"\")\nЯ текст,яхочу записаться в файл profile.txt на диск C!") call Preload("\"\")\nЯ текст,яхочу записаться в файл profile.txt на диск C! 2222") call PreloadGenEnd("C:\\Profile.txt") endif Добавлено (10 Февраль 2012, 22:18:21) --------------------------------------------- Dreii, не спеши, пожалуйста, лучше один раз обдуманно написать, чем 10 раз исправлять
|
|
|
|
Dreii | Дата: Пятница, 10 Февраля 2012, 22:22:34 | Сообщение # 15 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки: ![](/scripts/images/ic_info.gif)
| Quote (Cancel) call Preload("\"\")\nЯ текст,яхочу записаться в файл profile.txt на диск C!") - в этой строке точно ошибок нет? Можно ли за одну запись записать несколько строк? Да.
|
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 22:24:49 | Сообщение # 16 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| ("\"\") - что сие означает?
|
|
|
|
Dreii | Дата: Пятница, 10 Февраля 2012, 22:27:23 | Сообщение # 17 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки: ![](/scripts/images/ic_info.gif)
| Cancel, Когда используем прелоад,то он создает в файле ф-ию. Code function PreloadFiles takes nothing returns nothing
call Preload( """) Я текст,яхочу записаться в файл profile.txt на диск C!" ) call PreloadEnd( 0.0 )
endfunction
Если мы напишем так call Preload("Я текст,яхочу записаться в файл profile.txt на диск C!") ,то будет Code function PreloadFiles takes nothing returns nothing
call Preload( "Я текст,яхочу записаться в файл profile.txt на диск C!" ) call PreloadEnd( 0.0 )
endfunction
Сообщение отредактировал Dreii - Пятница, 10 Февраля 2012, 22:28:28 |
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 22:35:18 | Сообщение # 18 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| Dreii, если я правильно всё понял, то..
Code function PreloadFiles takes nothing returns nothing
call Preload( "Строка 1" ) call Preload( "|n" ) call Preload( "Строка 2" ) call Preload( ". Конец" ) call PreloadEnd( "C:\\Profile.txt" )
endfunction
Создаст текстовый файл Profile.txt в котором будет слудующая информация:
Code Строка 1 Строка 2. Конец
Я всё правильно понял?Добавлено (10 Февраль 2012, 22:33:12) --------------------------------------------- С этим разобрались.. теперь вторая часть вопроса - как считывать строки из импортированного в карту текстового документа text.txt ? Добавлено (10 Февраль 2012, 22:35:18) --------------------------------------------- Dreii, пожалуйста, если ты уж взялся ответить на вопрос - дай развёрнутый ответ, мне эти обрывки информации по-отдельности не так уж сильно и помогут. А если у тебя нет времени или желания - не продолжай писать и уступи место тем, кто не поленится дать ответ.
|
|
|
|
Dreii | Дата: Пятница, 10 Февраля 2012, 23:06:20 | Сообщение # 19 |
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки: ![](/scripts/images/ic_info.gif)
| Если мы вызываем Preload("Tests") в файле создается функция в которой будет написано Preload("Tests"), но если напишем call Preload("\"\")\ncall Tests()") то будет,
"Когда мы прелоадим этот файл, мы вызываем функцию из него, а значит вызывается и функция Tests. Именно так и происходит "считывание" из файла." (с)Doc
Это ф-ии для сохранения фалйа.
Code if GetLocalPlayer() == Player then call PreloadGenClear() call PreloadGenStart() call Preload("\"\")\ncall Tests()") call PreloadGenEnd("C:\\Profile.txt") endif Добавлено (10 Февраль 2012, 23:06:20) ---------------------------------------------
Quote (Cancel) Dreii, пожалуйста, если ты уж взялся ответить на вопрос - дай развёрнутый ответ, мне эти обрывки информации по-отдельности не так уж сильно и помогут. А если у тебя нет времени или желания - не продолжай писать и уступи место тем, кто не поленится дать ответ. Что бы опубликовать ответ,нужно убедится что он верный. ЧТо бы это проверить я создавал ф-ии в карте и проверял их,а на это нужно время.
Сообщение отредактировал Dreii - Пятница, 10 Февраля 2012, 23:02:03 |
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 23:18:09 | Сообщение # 20 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| Dreii, мне нужны не функции, а тексты. Можешь скинуть карту-пример, который создаёт текстовый документ с заполненной информацией?
|
|
|
|
DragoN | Дата: Пятница, 10 Февраля 2012, 23:19:08 | Сообщение # 21 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки: ![](/scripts/images/ic_info.gif)
| про проверку на включённые локальные файлы не забудьте а вообще, можно курить DataManager просто и понятно так-то
El Psy Congroo
|
|
|
|
Cancel | Дата: Пятница, 10 Февраля 2012, 23:36:46 | Сообщение # 22 |
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки: ![](/scripts/images/ic_info.gif)
| Quote (DragoN) про проверку на включённые локальные файлы не забудьте а вообще, можно курить DataManager просто и понятно так-то Для меня это китайская граммота.. при чём наработка не работает, не хочет загружать сохранённого.. я прошу вычленить лишь тот код, который мне нужен.. конкретно для сохранения текстового документа с некоторым текстом, который мне нужно из игры вынести (это для генератора карт, если кто помнит такую)Добавлено (10 Февраль 2012, 23:36:46) --------------------------------------------- Ладно, код наработки я примерно понимаю.. но она не работет Сохраняю героя - потом загружаю - мне сообщается что герой не был сохранён
|
|
|
|
DragoN | Дата: Суббота, 11 Февраля 2012, 00:11:51 | Сообщение # 23 |
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки: ![](/scripts/images/ic_info.gif)
| если просто что-то записать, то можешь это юзать но учти, что preload записывает немного своего хлама в файл Quote (Cancel) при чём наработка не работает Quote (DragoN) включённые локальные файлы
El Psy Congroo
|
|
|
|
SirNikolas | Дата: Суббота, 11 Февраля 2012, 16:33:16 | Сообщение # 24 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки: ![](/scripts/images/ic_info.gif)
| Для включения локальных файлов нужно создать файл с расширением .reg, скопировать в него следующий код:Code Windows Registry Editor Version 5.00 [HKEY_CURRENT_USER\Software\Blizzard Entertainment\Warcraft III] "Allow Local Files"=dword:00000001 и запустить его.Quote (Dreii) call Preload("\"\")\nЯ текст, я хочу записаться в файл profile.txt на диск C!") Ну одни же кавычки.
call Preload("\")\nЯ текст и т. д.")
\" - ставит кавычки, \n - переход на новую строку.Quote (Cancel) call Preload( "Строка 1" ) call Preload( "|n" ) call Preload( "Строка 2" ) call Preload( ". Конец" ) call PreloadEnd( "C:\\Profile.txt" ) Она создаст в файле точно такой же код, вместе с call Preload и прочим. Кроме PreloadEnd.
А вообще удобнее использовать Data Manager. Там даже инструкция подробная есть. Если интересно, он работает приблизительно по такому принципу:
Сохранение:Code call PreloadGenClear() call PreloadGenStart() call Preload("\")\ncall SetPlayerName(Player(15),\"Строка, которую нужно сохранить\")\ncall ExecuteFunc(\"ReloadString\")//") call PreloadGenEnd("DataManager\\somecode.j") Загрузка:Code function ReloadString takes nothing returns nothing set udg_String = GetPlayerName(Player(15)) endfunction
//... call Preloader("DataManager\\somecode.j") //... Файл:Code function PreloadFiles takes nothing returns nothing call Preload( "") call SetPlayerName(Player(15),"Строка, которую нужно сохранить") call ExecuteFunc("ReloadString")//" ) call PreloadEnd( 0.0 ) endfunction Добавлено (11 Февраль 2012, 16:33:16) ---------------------------------------------
Quote (Cancel) До меня дошёл слух, что можно использовать данные из .txt документов, импортированных в карту, во время игры Не знаю, не слышал.
|
|
|
|