Comunidad de diseño web y desarrollo en internet online

No veo la solución

Citar            
MensajeEscrito el 05 Mar 2010 01:16 pm
Hola amigos, estoy a punto de tirar la tohalla con esto del Flex. Aunque ya he hecho algunas cosillas he llegado a un punto en el que no veo la forma de continuar ya que no hay manera de que me funcione el programilla que estoy haciendo. Os pongo el código para ver si me podeis echar una mano.

<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
width="1024" height="700">
<fx:Script>
<![CDATA[
import flash.events.MouseEvent;
import mx.controls.Alert;
import mx.rpc.events.FaultEvent;
import mx.rpc.events.ResultEvent;
import mx.rpc.http.HTTPService;
public var nAsterisk:String;
public var nTelefonica:String;
public var abmD:HTTPService;

public function altasA(parameters:Object):void {
abmD = new HTTPService;
abmD.url = "phps/altaD.php";
abmD.method = "POST";
abmD.addEventListener("result",httpResult);
abmD.addEventListener("fault", httpFault);
abmD.useProxy = false;
abmD.resultFormat = "text";
abmD.send(parameters);
}
public function httpFault(event:FaultEvent):void {
var faultstring:String = event.fault.faultString;
Alert.show(faultstring);
}
public function httpResult(event:ResultEvent):void {
Alert.show("Operación realizada con éxito");
}
protected function fTelefonica_doubleClickHandler(event:MouseEvent):void
{
nTelefonica = fTelefonica.selectedItem.url;
currentState = "tele1";
fTele.text = nTelefonica;
}


protected function fAsterisk_doubleClickHandler(event:MouseEvent):void
{
nAsterisk = fAsterisk.selectedItem.url;
currentState = "tele";
fAste.text = nAsterisk;
}


protected function pMySQL_clickHandler(event:MouseEvent):void
{
currentState = "tele2";
var lineCount:uint = 0;
var f:File = File.applicationDirectory.resolvePath(fAste.text);
var fs:FileStream = new FileStream();
fs.open(f, FileMode.READ);
var txt:String = fs.readUTFBytes(fs.bytesAvailable);
fs.close();
var lineEndPattern:RegExp = new RegExp(File.lineEnding, "g");
txt = txt.replace(lineEndPattern, "\n");
var lines:Array = txt.split("\n");
lineCount = lines.length;
var final:uint = 0;
var campo:uint = 0;
var regis:Array = new Array;
for (var i:uint=0; i < lineCount; i++) {
campo = 0;
var some:String = lines[i];
var arrayNum:Array = StringToArray(some,",");
var last:String;
var value:String;
for each (var num:String in arrayNum) {
value = String(num);
if (value.length > 0) {
if (value.substr(0,1) == '"' || value.substr(value.length -1, 1) == '"') {
//este switch para el caso de que empiece o termine con comillas
switch (value.substr(0,1)) {
case '"':
if (value.substr(value.length -1, 1) == '"') {
last = value;
final = 1;
} else {
last = last + value;
final = 0;
}
if (final == 1) {
campo++;
regis[campo] = last.split('"').join("");
last = "";
}

break;
default:
if (value.substr(value.length -1, 1) == '"') {
last = last + value;
final = 1;
} else {
last = last + value;
final = 0;
}
if (final == 1) {
campo++;
regis[campo] = last.split('"').join("");
last = "";
}
break;
}
} else {
//Para el caso de que no empiece ni termine con comillas
if (final == 1) {
last = value;
campo++;
regis[campo] = last.split('"').join("");
last = "";
} else {
last = last + value;
}
}
}
}
var obj:Object = new Object;
obj.CUENTA = regis[1];
altasA(obj);
}

}
protected function StringToArray(source:String, spacer:String):Array {
return source.split(spacer);
}

]]>
</fx:Script>
<s:states>
<s:State name="State1"/>
<s:State name="tele"/>
<s:State name="tele1"/>
<s:State name="tele2"/>
</s:states>
<fx:Declarations>
<!-- Place non-visual elements (e.g., services, value objects) here -->
</fx:Declarations>
<s:Panel x="10" y="10" width="625" height="400" title="Haga doble click para seleccionar el fichero">
<s:Panel x="5" y="4" width="300" height="358" title="Seleccionar archivo Asterisk a comparar" id="asterisk">
<mx:FileSystemTree x="-1" y="0" width="300" height="327" id="fAsterisk" doubleClick="fAsterisk_doubleClickHandler(event)"/>
</s:Panel>
<s:Panel includeIn="tele,tele1,tele2" x="316" y="5" width="300" height="358" title="Seleccionar archivo Telefónica a comparar" id="telefonica">
<mx:FileSystemTree x="-1" y="0" width="300" height="327" id="fTelefonica" doubleClick="fTelefonica_doubleClickHandler(event)"/>
</s:Panel>
</s:Panel>
<s:Label x="645" y="10" text="Archivo Asterisk seleccionado:" backgroundColor="#A4F2F3" includeIn="tele,tele1,tele2"/>
<s:TextInput x="645" y="21" width="369" id="fAste" includeIn="tele,tele1,tele2"/>
<s:Label x="645" y="46" text="Archivo Telefónica seleccionado:" backgroundColor="#A4F2F3" includeIn="tele1,tele2"/>
<s:TextInput x="645" y="57" width="369" id="fTele" includeIn="tele1,tele2"/>
<s:Button x="761" y="87" label="Crear base de datos" id="pMySQL" includeIn="tele1,tele2" click="pMySQL_clickHandler(event)"/>
<mx:ProgressBar includeIn="tele2" x="643" y="128" width="371" id="progre"/>
</s:WindowedApplication>


el php:

<?php
header("Content-type: text/xml");
$mysql = mysql_connect("127.0.0.1","root","");
mysql_select_db("tarot806", $mysql);
$Query = "INSERT INTO estrella (CUENTA) VALUES ($_POST['CUENTA'])";
$Result = mysql_query($Query);
mysql_close($mysql);
?>


He simplificado un poco (bastante) el código para que lo entendáis mejor. Se trata de grabar un registro en una tabla de MySQL mediante httpServer. Tengo realizado otro programa usando el mismo sistema y funciona a la perfección aunque es otra cosa, pero, en éste, no lo comprendo pero no va. Mediante el debug hago el seguimiento línea a línea y pasa por todas perfectamente pero cuando llega al evento que dispara el estado 'tele2' se espera hasta que ha procesado todos los registros y me lanza los msgs de que la grabación es correcta al final y no por registro a registro y sin que se grabe nada en la tabla. He simplificado el código aquí para grabar un solo campo aunque en la realidad debería grabar 11. Para que os hagais una idea mejor, se trata de procesar un archivo txt y grabar un registro en la tabla por cada línea del archivo txt procesado. Solo tengo preparado el fichero que se carga en el primer arbol. El fichero es este:

"TAROT","639673651","s","tarot-in","""Tarot"" <639673651>","DAHDI/6-1","SIP/tsc-ricardo-0418f048","Dial","SIP/tsc-ricardo,60","2010-02-04 17:46:06","2010-02-04 17:46:06","2010-02-04 17:46:12",6,6,"ANSWERED","BILLING","1265305566.1409",""
"TAROT","639673651","s","tarot-in","""Tarot"" <639673651>","DAHDI/7-1","SIP/tsc-ricardo-03fccac8","Dial","SIP/tsc-ricardo,60","2010-02-04 17:48:23","2010-02-04 17:48:23","2010-02-04 17:48:53",30,30,"ANSWERED","BILLING","1265305703.1411",""
"TAROT","639673651","s","tarot-in","""Tarot"" <639673651>","DAHDI/10-1","SIP/tsc-ricardo-04126c28","Queue","tarot,t,,,60","2010-02-04 18:50:09","2010-02-04 18:50:09","2010-02-04 18:51:44",95,95,"ANSWERED","DOCUMENTATION","1265309409.1442",""
"TAROT","639673651","104","tarot-in","""Tarot"" <639673651>","DAHDI/1-1","SIP/tsc-ricardo-04126c28","Dial","SIP/tsc-ricardo,30","2010-02-04 18:52:58","2010-02-04 18:53:37","2010-02-04 18:53:48",50,11,"ANSWERED","DOCUMENTATION","1265309578.1445",""
"TAROT","639673651","104","tarot-in","""Tarot"" <639673651>","DAHDI/2-1","SIP/tsc-ricardo-c8073008","Hangup","","2010-02-04 18:56:43","2010-02-04 18:56:43","2010-02-04 18:57:46",63,63,"ANSWERED","DOCUMENTATION","1265309803.1447",""
"TAROT","639673651","104","tarot-in","""Tarot"" <639673651>","DAHDI/3-1","SIP/tsc-ricardo-04126c28","Dial","SIP/tsc-ricardo,30","2010-02-04 19:02:56","2010-02-04 19:02:56","2010-02-04 19:03:36",40,40,"ANSWERED","DOCUMENTATION","1265310176.1449",""
"TAROT","639673651","s","tarot-in","""Tarot"" <639673651>","DAHDI/4-1","SIP/tsc-ricardo-04126c28","Queue","tarot,t,,,60","2010-02-04 19:05:04","2010-02-04 19:05:04","2010-02-04 19:06:37",93,93,"ANSWERED","DOCUMENTATION","1265310304.1451",""
"TAROT","639673651","s","tarot-in","""Tarot"" <639673651>","DAHDI/5-1","SIP/tsc-ricardo-04126c28","Queue","tarot,t,,,60","2010-02-04 19:33:32","2010-02-04 19:33:32","2010-02-04 19:34:33",61,61,"ANSWERED","DOCUMENTATION","1265312012.1455",""
"TAROT","639673651","s","tarot-in","""Tarot"" <639673651>","DAHDI/6-1","SIP/tsc-ricardo-12254128","Queue","tarot,t,,,60","2010-02-04 19:42:10","2010-02-04 19:42:10","2010-02-04 19:42:59",49,49,"ANSWERED","DOCUMENTATION","1265312530.0",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/5-1","DAHDI/1-1","Queue","tarot,t,,,60","2010-02-06 19:32:19","2010-02-06 19:32:19","2010-02-06 19:33:35",76,76,"ANSWERED","DOCUMENTATION","1265484739.230",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/6-1","","Hangup","","2010-02-06 19:35:46","2010-02-06 19:35:46","2010-02-06 19:37:25",99,99,"ANSWERED","DOCUMENTATION","1265484946.232",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/7-1","DAHDI/1-1","Queue","tarot,t,,,60","2010-02-06 20:13:24","2010-02-06 20:13:24","2010-02-06 20:14:41",77,77,"ANSWERED","DOCUMENTATION","1265487204.236",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/8-1","","Queue","tarot,t,,,60","2010-02-06 20:34:39","2010-02-06 20:34:39","2010-02-06 20:35:26",47,47,"ANSWERED","DOCUMENTATION","1265488479.238",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/9-1","","Queue","tarot,t,,,60","2010-02-06 20:37:24","2010-02-06 20:37:24","2010-02-06 20:38:11",47,47,"ANSWERED","DOCUMENTATION","1265488644.240",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/10-1","DAHDI/1-1","Queue","tarot,t,,,60","2010-02-06 21:57:29","2010-02-06 21:57:29","2010-02-06 21:58:26",57,57,"ANSWERED","DOCUMENTATION","1265493449.242",""
"TAROT","965289626","999","tarot-in","""Tarot"" <965289626>","DAHDI/1-1","DAHDI/2-1","Dial","DAHDI/g1/639673651,15","2010-02-06 21:58:55","2010-02-06 22:00:31","2010-02-06 22:00:44",109,13,"ANSWERED","DOCUMENTATION","1265493535.244",""
"TAROT","639673651","s","tarot-in","""Tarot"" <639673651>","DAHDI/3-1","","BackGround","tsc/tarot/Hablar_Videntes_8000","2010-02-07 10:53:18","2010-02-07 10:53:18","2010-02-07 10:54:14",56,56,"ANSWERED","DOCUMENTATION","1265539998.251",""
"TAROT","965289626","999","tarot-in","""Tarot"" <965289626>","DAHDI/4-1","DAHDI/1-1","Dial","DAHDI/g1/639673651,15,A(tsc/tarot/Llamada_Tarot_8000)","2010-02-07 16:08:17","2010-02-07 16:08:17","2010-02-07 16:08:56",39,39,"ANSWERED","DOCUMENTATION","1265558897.252",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/5-1","","BackGround","tsc/tarot/Hablar_Videntes_8000","2010-02-07 16:18:28","2010-02-07 16:18:28","2010-02-07 16:19:33",65,65,"ANSWERED","DOCUMENTATION","1265559508.254",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/6-1","","Queue","tarot,t,,,60","2010-02-07 16:21:52","2010-02-07 16:21:52","2010-02-07 16:22:38",46,46,"ANSWERED","DOCUMENTATION","1265559712.255",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/7-1","","BackGround","tsc/tarot/Hablar_Videntes_8000","2010-02-07 16:26:52","2010-02-07 16:26:52","2010-02-07 16:27:38",46,46,"ANSWERED","DOCUMENTATION","1265560012.257",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/8-1","","WaitExten","1,m","2010-02-07 17:34:47","2010-02-07 17:34:47","2010-02-07 17:35:32",45,45,"ANSWERED","DOCUMENTATION","1265564087.258",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/9-1","DAHDI/1-1","Queue","tarot,t,,,60","2010-02-07 18:25:30","2010-02-07 18:25:30","2010-02-07 18:27:50",140,140,"ANSWERED","DOCUMENTATION","1265567130.259",""
"TAROT","965289626","s","tarot-in","""Tarot"" <965289626>","DAHDI/10-1","DAHDI/1-1","Queue","tarot,t,,,60","2010-02-07 18:30:28","2010-02-07 18:30:28","2010-02-07 18:31:01",33,33,"ANSWERED","DOCUMENTATION","1265567428.261",""
"TAROT","965673386","s","tarot-in","""Tarot"" <965673386>","DAHDI/9-1","","Hangup","","2010-02-09 19:08:38","2010-02-09 19:08:38","2010-02-09 19:08:53",15,15,"ANSWERED","DOCUMENTATION","1265742518.242",""
"TAROT","965673386","s","tarot-in","""Tarot"" <965673386>","DAHDI/10-1","","Hangup","","2010-02-09 19:09:24","2010-02-09 19:09:24","2010-02-09 19:09:39",15,15,"ANSWERED","DOCUMENTATION","1265742564.245",""
"TAROT","965673386","s","tarot-in","""Tarot"" <965673386>","DAHDI/1-1","","Hangup","","2010-02-09 19:10:56","2010-02-09 19:10:56","2010-02-09 19:11:11",15,15,"ANSWERED","DOCUMENTATION","1265742656.248",""
"TAROT","965673386","s","tarot-in","""Tarot"" <965673386>","DAHDI/2-1","","Hangup","","2010-02-09 19:12:41","2010-02-09 19:12:41","2010-02-09 19:12:56",15,15,"ANSWERED","DOCUMENTATION","1265742761.251",""
"TAROT","965673386","s","tarot-in","""Tarot"" <965673386>","DAHDI/3-1","DAHDI/1-1","Queue","tarot,t,,,60","2010-02-09 19:14:37","2010-02-09 19:14:37","2010-02-09 19:16:22",105,105,"ANSWERED","DOCUMENTATION","1265742877.254",""


En fin, si alguien me puede echar una mano le quedaré eternamente agradecido. De lo contrario tendré que volver a mi antiguo VB para programar y abandonar las ideas tan interesantes de las RIA's.

Un saludo

Por AnakinX

5 de clabLevel



 

msie8
Citar            
MensajeEscrito el 05 Mar 2010 01:22 pm
si puedes explicar un poco el funcionamiento por encima seria de gran ayuda para que te echemos una mano entre todos.

saludos

Por elpk

40 de clabLevel



 

safari
Citar            
MensajeEscrito el 05 Mar 2010 06:29 pm
Vereis, se trata de procesar unos archivos txt y pasarlos a registros de base de datos para posteriormente tratarlos de manera que se obtengan unos determinados resultados. La idea que haga el programa flex es la siguiente:


    En el 'state1' busco a través del arbol de directorios el archivo que quiero procesar que tiene el contenido que he puesto en mi anterior msg. Visualizo la ruta en el objeto 'fAste' que aparece al cambiar al estado 'tele'.

    El estado 'tele' visualiza un segundo arbol de directorios para realizar la misma operación localizando un segundo archivo para compararlo posteriormente con el primero (pero todo esto no está realizado todavía, solo la búsqueda y selección del segundo archivo que una vez seleccionado visualizo la ruta en 'fTele'. Acto seguido, se pulsa el botón 'pMySQL' que aparece en el stado 'tele1' que se activó cuando localicé el 2º archivo. A partir de aquí comienza la parte importante al disparar el evento 'click' del botón.

    Activo el estado 'tele2', que no aparece en pantalla, y leo el contenido del primer archivo, monto un bucle por cada línea del archivo y voy extrayendo los campos que vienen delimitados por comas en cada línea mediante otro bucle. Voy guardando lo valores en el array 'regis' hasta completar la línea (he montado unas instruccione para obtener los campos contenidos entre comillas dentro del bucle pero todo eso funciona correctamente ya que lo he comprobado con el debug. Una vez procesada la línea, salgo del bucle de extracción de los campos y le digo que me monte una variable objeto, en el ejemplo solo pongo el primer campo que me interesa para no hacerklo largo pero habrá que ponerlos todos cuando funcione. Esta variable 'obj' es la que mando a la función 'altasA' para que mediante el correspondiente php me grabe el registro en la base de datos y asi sucesivamente hasta que termina la última línea del archivo.

    Bien, sin entenderlo, solo es cuando ha terminado de procesar todas las líneas del archivo, cuando aparece el estado 'tele2' y comienzan a salirme las alert.show de cada línea procesada en lugar de ir saliendo de una en una con el estado activado (aprovecharía para montar la progressBar). Las Alert me dicen que el resultado del eventListener es correcto, pero sin embargo, al comprobar, resulta que no me ha grabado nada en la base de datos.

    Y hasta aquí he llegado, perdonar la extensión de lo que acabo de contar pero la verdad es que estoy bastante agobiado, ya que veo que esto es muy dificil para mi y no creo que pueda llegar a dominar el tema, pues seguro que es culpa mía.


Muchas gracias por vuestra paciencia.

Por AnakinX

5 de clabLevel



 

msie8
Citar            
MensajeEscrito el 05 Mar 2010 06:33 pm
en lugar de usar httpServer deberias utilizar el framework amfPHP date un vuelta por mi blog y veras de lo que te digo, no es nada del otro mundo y te va a simplicar mucho la vida (ademas del codigo claro) si despues de usar el amfPHP sigues con el problema me pasas tu proyecto y vere que puedo hacer..

Por Shadonwk

50 de clabLevel



 

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.