Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Чтение данных из открытого файла на компьютере (http://www.flasher.ru/forum/showthread.php?t=132385)

MaskiShow 11.11.2009 02:26

Чтение данных из открытого файла на компьютере
 
Открываем текстовый файл. Как можно теперь прочитать его содержимое (как строку)?

Код AS1/AS2:

var attach:flash.net.FileReference=new flash.net.FileReference;
    var allTypes:Array = new Array();
    var textTypes:Object = new Object();
    textTypes.description = "Text Files (*.txt, *.rtf)";
    textTypes.extension = "*.txt;*.rtf";
    allTypes.push(textTypes);
    listener=new Object();
 
    listener.onSelect=function(selFile:Object){
        trace(selFile.name);
 
    }

И можно ли с помощью класса FileReference сохранить ("закачать") файл на локальный компьютер?

Также интересует, где флешка сохраняет на компьютере файлы SharedObject?

mooncar 11.11.2009 11:17

Методы FileReference - только для работы с сервером.
1. Не получится. Казалось бы, можно было бы попробовать после onSelect вызвать load метода Loadvars, но нет. После onSelect мы можем получить только имя файла, а ссылку на файл увы, нет:
Код AS1/AS2:

var listener:Object = new Object();
listener.onSelect = function(file:FileReference):Void {
  lv.load(????????); //не получится, ссылки на файл мы не знаем
 
}
 
var lv:LoadVars = new LoadVars();
lv.onData = function  (src:String) {
        trace(src);
}
 
var fileRef:FileReference = new FileReference();
fileRef.addListener(listener);
fileRef.browse();

Вот все, что удается найти в объекте file (в аргументе функции-обработчика события onSelect):
Код:

_listeners  [object Object]
postData  undefined
creator  undefined
creationDate  Wed Nov 11 10:30:06 GMT+0300 2009
modificationDate  Wed Nov 11 10:30:06 GMT+0300 2009
size  0
type  .txt
name  test.txt

Как видим, имя есть, а ссылки на файл (полный путь + имя) - нет.

Если мы делаем что-то вроде админки, то прочитать содержание после onSelect можем только загрузив файл на сервер и закачав его обратно.
(Я, например, так и сделал в паре админок).

2. Нет, нельзя.

По крайней мере, в AS2 и без надстроек типа Zinc дела обстоят так.

alexcon314 11.11.2009 11:28

selFile.name - именно имя файла, а не полный путь к нему.
Цитата:

где флешка сохраняет на компьютере файлы SharedObject?
В юзерском профиле.
c:\Documents and Settings\[USER_NAME]\Application Data\Macromedia\Flash Player\#SharedObjects\
под вистой папка Documents and Settings вроде Users называется.
Некоторые новшества по работе с локальной файловой системой, которые вас, быть может, заинтересуют, введены в AS3 под 10-ым плеером. Почитайте доки.

MaskiShow 11.11.2009 15:07

Как-то все взаимоисключающе...

Либо грузим файл с помощью load и читаем его, но тогда вручную указываем путь к файлу.
Либо "открываем" файл через explorer, но прочитать его не возможно...

SharedObject тоже не порадовал форматом хранения данных =((

mooncar 11.11.2009 15:37

Ну флеш вроде как не заточен под работу с файловой системой.
Некоторые еще огорчаются, когда узнают, что писать данные в локальный файл тоже нельзя.
Смотрите в сторону AS3.

udaaff 11.11.2009 15:58

Цитата:

Сообщение от MaskiShow (Сообщение 864659)
Открываем текстовый файл. Как можно теперь прочитать его содержимое (как строку)?

В AS2 никак. В AS3 доступен ByteArray файла: FileReference.data (10 плеер).


Часовой пояс GMT +4, время: 04:16.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.