Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

keoma

Leitura de arquivo TXT com aversão SDK 3.5 ou 3.6 no FLEX

Recommended Posts

Boa tarde a todos,

 

estou tendo problema com o FLEX na versão do SDK 3.5, não existe o método load e por isso não estou conseguindo carregar em um grid as informações de um arquivo txt. Na versão 4.1 é muito facil pois já temos o load. Não tenho experiencia com FLEX e não consigo achar um código ou referencia para resolver o problema, o mais proximo que encontrei foi usar javascript porém no FLEX não conseui fazer funcionar:

 

(este script funciona perfeitamente no HTML)

 

<script>
//Cria Objeto ActiveX
var dados = new ActiveXObject("Scripting.FileSystemObject");
//Função para abrir o arquivo
function AbreArquivo(arq){
//o parametro arq é o endereço do txt
//carrega o txt
var arquivo = dados.OpenTextFile(arq, 1, true);
//varre o arquivo
while(!arquivo.AtEndOfStream){
//escreve o txt no TextArea
document.getElementById("texto").value = arquivo.ReadAll();
}
//fecha o txt
arquivo.Close();
}
</script>
poderiam me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com a classe URLLoader não deu?

var arquivo_str:String = "arquivo.txt";
var urlRequest:URLRequest = new URLRequest( arquivo_str );
var carregador_urll:URLLoader = new URLLoader();
carregador_urll.dataFormat = URLLoaderDataFormat.TEXT;// <- O padrão, mas poderia ser 'VARIABLES' para carregar variáveis
carregador_urll.addEventListener( Event.COMPLETE, carregouFunc );
carregador_urll.load( urlRequest );
 
function carregouFunc( e:Event ):void {
    
trace( e.currentTarget.data );

}

Abs,

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia, o SDK 3.5 não possui o Loader.Load nem Data, por isso não estava conseguindo. Depois de muita pesquisa (lembrando que estou começando a aprender flex) consegui achar uma solução usando Embed:

 

 

 

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" viewSourceURL="097/index.html">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
//Aqui você coloca o local onde esta o que você quer carregar
[Embed(source="C:/Arquivos/teste.txt",mimeType="application/octet-stream")]
private var myFile:Class;
//Voce fara a leitura do array de bytes
var b:ByteArray = new myFile();
var s:String = b.readUTFBytes(b.length)
protected function button1_clickHandler(event:MouseEvent):void{
textoSelecionado.text = s;
}
]]>
</mx:Script>
<mx:Button x="10" y="10" label="Button" click="button1_clickHandler(event)"/>
<mx:TextArea id="textoSelecionado" x="10" y="40" height="163"/>
</mx:Application>
Neste caso o arquivo tem que existir e já estar no local onde você informou no código, não sei se é possível alterar esse local em tempo de execução más já resolveu pelo menos o problema da leitura do arquivo, você pode carregar imagens também.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não existe URLLoader.load nessa versão do SDK????????? Poxa :dormindo:

 

*O importante é que você conseguiu resolver :)

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.