Сейчас 04:40:49 Воскресенье, 8 сентября, 2024 год
[ x ] Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я


[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
Модератор форума: PUVer, SirNikolas, Ty3uK  
[Вопрос] работа с .txt
CancelДата: Пятница, 10 Февраля 2012, 21:28:52 | Сообщение # 1
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
До меня дошёл слух, что можно использовать данные из .txt документов импортированных в карту во время игры, и что даже можно создавать .txt файлы в процессе игры.

Вопрос - правда ли это, и если да, то как это можно осуществить? Желательно с наглядным примером.
 

Ty3uKДата: Пятница, 10 Февраля 2012, 21:42:34 | Сообщение # 2
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
С помощью PreloadStart() можно записать в файл. Подробностей не знаю, не пользовался. Ждем шарящих

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

Brut@lusДата: Пятница, 10 Февраля 2012, 21:46:45 | Сообщение # 3
Группа: Заблокированные
Сообщений: 2496
Награды: 1
Репутация: 924
Блокировки:
николас вроде тут понимает. и дуська

 

DreiiДата: Пятница, 10 Февраля 2012, 22:02:52 | Сообщение # 4
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Code
if (GetLocalPlayer() == p) {
           PreloadGenClear()
           PreloadGenStart()
           PreloadGenEnd("C:\\TEMP\\ARCHERSOFTHEISLAND') //Путь к файлу
}


 

CancelДата: Пятница, 10 Февраля 2012, 22:04:06 | Сообщение # 5
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Quote (Dreii)
Code
if (GetLocalPlayer() == p) {
           PreloadGenClear()
           PreloadGenStart()
           PreloadGenEnd("C:\\TEMP\\ARCHERSOFTHEISLAND') //Путь к файлу
}

Quote (Cancel)
Желательно с наглядным примером.
 

Ty3uKДата: Пятница, 10 Февраля 2012, 22:04:51 | Сообщение # 6
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Код- вполне себе наглядный пример -_-

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

CancelДата: Пятница, 10 Февраля 2012, 22:05:54 | Сообщение # 7
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Quote (Ty3uK)
Код- вполне себе наглядный пример -_-

Были бы комментарии какая функция что делает - быть может, а так наглядности не наблюдаю
 

Ty3uKДата: Пятница, 10 Февраля 2012, 22:07:09 | Сообщение # 8
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
Я уже говорил, да и по логике и названиям можно понять. Для локального игрока чистим прелоад запись, начинаем запись и заканчиваем ее с указанием выходного файла

╭∩╮(︶︿︶)╭∩╮
"Ульта Тайда мне в жопу!" © k0fe1n
Статьи: MUI-1|MUI-2|Шрифт
Полезности: JASP|JNGP|Уголок библиотек
 

DreiiДата: Пятница, 10 Февраля 2012, 22:07:09 | Сообщение # 9
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
edit.



Сообщение отредактировал Dreii - Пятница, 10 Февраля 2012, 22:15:07
 

CancelДата: Пятница, 10 Февраля 2012, 22:10:43 | Сообщение # 10
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Quote (Dreii)
call PreloadGenEnd("C:\\TEMP\\ARCHERSOFTHEISLAND\\Profile.txt") //путь к файлу  

Я так понял - это путь к внешним данным. Каким должен быть путь, чтобы, например, открыть доступ к данным импортированного в карту .txt документа?.

Функция Preload("/"Я хочу загрузить этот текст из файла") - возвращает весь текст файла? Или лишь чеё часть, если часть - то каким образом они различаются функцией?
 

DreiiДата: Пятница, 10 Февраля 2012, 22:11:25 | Сообщение # 11
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
Cancel, я там ошибся там не загружает а сохраняет)

 

CancelДата: Пятница, 10 Февраля 2012, 22:12:05 | Сообщение # 12
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Quote (Dreii)
Cancel, я там ошибся там не загружает а сохраняет)

И всё-таки, можешь немного подробнее описать процесс? Буду очень благодарен
 

DreiiДата: Пятница, 10 Февраля 2012, 22:16:29 | Сообщение # 13
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
То что было выше неверно,я запутался со слешами))
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
Блокировки:
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
Блокировки:
Quote (Cancel)
call Preload("\"\")\nЯ текст,яхочу записаться в файл profile.txt на диск C!") - в этой строке точно ошибок нет? Можно ли за одну запись записать несколько строк?

Да.


 

CancelДата: Пятница, 10 Февраля 2012, 22:24:49 | Сообщение # 16
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
("\"\") - что сие означает?
 

DreiiДата: Пятница, 10 Февраля 2012, 22:27:23 | Сообщение # 17
10 уровень
Группа: Проверенные
Сообщений: 4991
Награды: 0
Репутация: 603
Блокировки:
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
Блокировки:
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
Блокировки:
Если мы вызываем Preload("Tests") в файле создается функция в которой будет написано Preload("Tests"), но если напишем call Preload("\"\")\ncall Tests()") то будет,

Code
Preload("")
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
Блокировки:
Dreii, мне нужны не функции, а тексты.
Можешь скинуть карту-пример, который создаёт текстовый документ с заполненной информацией?
 

DragoNДата: Пятница, 10 Февраля 2012, 23:19:08 | Сообщение # 21
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
про проверку на включённые локальные файлы не забудьте
а вообще, можно курить DataManager
просто и понятно так-то


El Psy Congroo
 

CancelДата: Пятница, 10 Февраля 2012, 23:36:46 | Сообщение # 22
8 уровень
Группа: Проверенные
Сообщений: 634
Награды: 0
Репутация: 158
Блокировки:
Quote (DragoN)
про проверку на включённые локальные файлы не забудьте
а вообще, можно курить DataManager
просто и понятно так-то

Для меня это китайская граммота.. при чём наработка не работает, не хочет загружать сохранённого.. я прошу вычленить лишь тот код, который мне нужен.. конкретно для сохранения текстового документа с некоторым текстом, который мне нужно из игры вынести (это для генератора карт, если кто помнит такую)

Добавлено (10 Февраль 2012, 23:36:46)
---------------------------------------------
Ладно, код наработки я примерно понимаю.. но она не работет
Сохраняю героя - потом загружаю - мне сообщается что герой не был сохранён

 

DragoNДата: Суббота, 11 Февраля 2012, 00:11:51 | Сообщение # 23
Инквизитор
Группа: Стримеры
Сообщений: 4348
Награды: 7
Репутация: 2776
Блокировки:
если просто что-то записать, то можешь это юзать
но учти, что preload записывает немного своего хлама в файл
Quote (Cancel)
при чём наработка не работает

Quote (DragoN)
включённые локальные файлы


El Psy Congroo
 

SirNikolasДата: Суббота, 11 Февраля 2012, 16:33:16 | Сообщение # 24
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
Для включения локальных файлов нужно создать файл с расширением .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 документов, импортированных в карту, во время игры
Не знаю, не слышал.


 

  • Страница 1 из 1
  • 1
Поиск:

Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz