![]() |
|
||||||||||
|
|||||
|
[+6 09.10.12]
Регистрация: Sep 2012
Сообщений: 33
|
Нет, не знаю. Не важно запятая. Мне надо узнать как загружать цифры из текстового файла в массив и записывать обратно в фаил.
|
|
|||||
|
Регистрация: Mar 2012
Адрес: г.Новосибирск
Сообщений: 381
|
split - это функция которая переписывает вашу строку из файла в массив причем в скобках вам нужно указывать разделитель(это как раз и есть та самая запятая).
если у вас в файле строка такого вида 12;12;235;6;4;754;75;67 то функция имела бы вид в скобках указывается то, чем разделены между собой символы в строке а в вашем коде все должно работать если заменить строку так как вам подсказали. потом просто сделайте не а цифры выведутся по прежнему через запятую, потому что если выводить массив на экран, все его элементы будут выводиться через запятую. можете также вывести |
|
|||||
|
Можно вообще всё реализовать через FileReference, все равно этот способ не удобен, что с URLLoader'ои, что с FileReference. Если это будет в игре, в которую будут играть пользователи, то им надоест окошко о сохранении файла. Если это будет в редакторе уровней, например, то его лучше реализовать на AIR. Там возможности работы с файловой системой гораздо шире.
В общем, как бы то ни было, вот так можно реализовать всё через FileReference: package { import flash.display.Sprite; import flash.events.Event; import flash.events.KeyboardEvent; import flash.net.FileFilter; import flash.net.FileReference; import flash.ui.Keyboard; /** * ... * @author Casey Ryan */ public class FileArray extends Sprite { private var _array:Array = [1, 3, 2, 1, 3, 5, 2, 8, 5]; private var _fileReference:FileReference; public function FileArray() { stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp); } // нажимаем пробел для сохранения файла, и TAB для открытия private function onKeyUp(e:KeyboardEvent):void { if (e.keyCode == Keyboard.SPACE) { _fileReference = new FileReference(); _fileReference.save(_array.join(","), "array.txt"); // соединяем массив в строку и сохраняем файл array.txt } else if (e.keyCode == Keyboard.TAB) { _fileReference = new FileReference(); _fileReference.addEventListener(Event.SELECT, onFileSelect); _fileReference.browse([new FileFilter("Текстовый файл", "*.txt")]); } } private function onFileSelect(e:Event):void { _fileReference.removeEventListener(Event.SELECT, onFileSelect); _fileReference.addEventListener(Event.COMPLETE, onComplete); _fileReference.load(); } private function onComplete(e:Event):void { _fileReference.removeEventListener(Event.COMPLETE, onComplete); var rawString:String = String(e.target.data); _array = rawString.split(","); trace(_array); } } } |
|
|||||
|
[+6 09.10.12]
Регистрация: Sep 2012
Сообщений: 33
|
Спасибо за ценные советы. Правда, теперь у меня появились вопросы.
Последний раз редактировалось Вопросник; 13.10.2012 в 22:31. |
|
|||||
|
[+6 09.10.12]
Регистрация: Sep 2012
Сообщений: 33
|
А как на AIR это сделать?
Добавлено через 10 минут через URLRequest? |
|
|||||
|
Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
|
Проще через File/FileStream
|
|
|||||
|
[+6 09.10.12]
Регистрация: Sep 2012
Сообщений: 33
|
|
![]() |
![]() |
Часовой пояс GMT +4, время: 01:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|