Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
Alguien sabe un modo mas efectivo de hacer esto con el texto de un memo

Lo que hago es cargar un fichero de texto de unas 700 lineas en un memo y me interesa quitale lineas por arriba y por abajo y luego reemplazar alguna palabra. Pero la eficiencia es nula y le cuesta bastante hacerlo.
Me podeis decir cual seria la forma correcta de hacerlo para que vaya rápido.
Quizas usando otro componente que no sea el memo clásico?

Cita:
//busco en el memo desde el principio una linea que coincida con PALABRA y borro todas las anteriores lineas
while Memo1.Lines[0]<>'PALABRA' do memo1.Lines.Delete(0);

//borrar todas las lineas del memo a partir de la 127 en adelante.
for I := 0 to Memo1.Lines.Count do memo1.Lines.Delete(127);

//recorrer las lineas que quedan y sustituir Palabra1 por Palabra2
for x := 0 to Memo1.Lines.Count do
memo1.lines[x]:= StringReplace( memo1.Lines[x],'palabra1','palabra2',[rfReplaceAll]);
gracias
Responder Con Cita
  #2  
Antiguo 08-12-2009
Avatar de DarkMan
DarkMan DarkMan is offline
Miembro
 
Registrado: jul 2006
Posts: 102
Poder: 18
DarkMan Va por buen camino
Tal vez trabajando con su propiedad text ganes eficiencia, aunque el mecanismo empleado será distinto.
__________________
"La recompensa de una buena acción está en haberla hecho"
Responder Con Cita
  #3  
Antiguo 08-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
¿no existe algun modo de borrar lineas por un rango sin tener que recorrer una por una?
por ejemplo decir borrar desde la linea 0 a la 300.
Responder Con Cita
  #4  
Antiguo 09-12-2009
Avatar de mamcx
mamcx mamcx is offline
Moderador
 
Registrado: sep 2004
Ubicación: Medellín - Colombia
Posts: 3.911
Poder: 25
mamcx Tiene un aura espectacularmamcx Tiene un aura espectacularmamcx Tiene un aura espectacular
Pienso que lo mejor seria usar Expresiones Regulares y pasar el texto a una vble de memoria, procesarla y luego pasarla al memo (asi no interfiere el código interno del memo reaccionando a los cambios del texto).

Ahora no veo que 700 lineas sea algo impresionante y no aclaras que es "ineficiente". Seria bueno empezar por ahi... que es "ineficiente"?

Delphi es super rapido con los strings, y he procesado al menos varias megas de texto sin lios...
__________________
El malabarista.
Responder Con Cita
  #5  
Antiguo 09-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Lo primero que se me ocurre es que trabajes con una estructura en memoria, no ligada a ningun componente. Eso te evitará operaciones de refresco y similares.

Código Delphi [-]
var
  TS:TStrings;
begin
  TS := TStringList.Create();

   // Asignar a TS lo que te interesa 
   ...
   // Trabajar en TS
   ...

  
  // Volver el resultado al memo.
  Memo.Lines.Clear;
  Memo.Lines.AddStrings(TS);

Otra cosa que te podría optimizar la operación, es no eliminar lo que te sobra, sino quedarte con lo que te vale y trabajar con eso.

1) Recorre las líneas hasta encontrar <PALABRA>
2) Copia desde esa línea hasta la 127 a TS
3) Trabaja sobre TS
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #6  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
Cita:
Empezado por mamcx Ver Mensaje

Ahora no veo que 700 lineas sea algo impresionante y no aclaras que es "ineficiente". Seria bueno empezar por ahi... que es "ineficiente"?

Delphi es super rapido con los strings, y he procesado al menos varias megas de texto sin lios...
no me quejo por quejarme, a la aplicacion le cuesta unos 7 segundos hacer todo el proceso. Y tengo un Intel Quad Q6600 y 4gb der ram, osea que no es problema de potencia.

Aclaro algo que no habia dicho, es que el texto es el código de una web que cargo previamente con el componente TIdHTTP de las Indy. Pero ese proceso es rápido.

Os pongo el codigo fuente para que lo veais, es un simple capricho de cargar solo el cuadro del tiempo de mi provincia desde la web de aemet.
Uso el webbrowser de http://www.bsalsa.com/, ya que me permite sin hacer nada cargar un string en el browser, ocultar scrollbars...

Seguramente el problema como decis esta en usar un tmemo para hacer los cambios, estoy probando trabajar directamente con el tstrings pero me faltan cosas que con el memo las hacia más facil.

He leido que quizas usando el componente JvHtmlParser de JEDI me iria mejor, pero lo he mirado y no me aclaro bien como funciona.
Archivos Adjuntos
Tipo de Archivo: zip ELTIEMPO.zip (9,2 KB, 9 visitas)

Última edición por cocute fecha: 09-12-2009 a las 13:33:56.
Responder Con Cita
  #7  
Antiguo 09-12-2009
Delfino Delfino is offline
Miembro
 
Registrado: jul 2003
Ubicación: Madrid
Posts: 974
Poder: 21
Delfino Va por buen camino
Cita:
Lo primero que se me ocurre es que trabajes con una estructura en memoria,
Pero si la propiedad Lines del memo es de tipo TStrings, para evitar operaciones visuales basta con llamar a los metodos BeginUpdate y EnUpdate..
__________________
¿Microsoft? No, gracias..
Responder Con Cita
  #8  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
Cita:
Empezado por Delfino Ver Mensaje
Pero si la propiedad Lines del memo es de tipo TStrings, para evitar operaciones visuales basta con llamar a los metodos BeginUpdate y EnUpdate..
he añadido

Memo1.Lines.beginupdate;
...
....
...
Memo1.Lines.EndUpdate;

Pero creo que no se gana nada, sigue tardando bastante en procesar.
Responder Con Cita
  #9  
Antiguo 09-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Si cambias tu código por uno como este:

Código Delphi [-]
procedure TForm1.FormActivate(Sender: TObject);
const
  CHAR_CRLF = #13#10;
var
  x:integer;
  Str:String;
begin
  Str := '';
Str := Str + '1-' + FormatDateTime('hh:mm:ss:zzz', now) + CHAR_CRLF;
//cargo la web en un memo
memo1.Lines.Text:=idHttp1.Get('http://www.aemet.es/es/eltiempo/prediccion/localidades?l=22001');
  Str := Str + '2-' + FormatDateTime('hh:mm:ss:zzz', now) + CHAR_CRLF;
//borro todas lineas hasta ...
while Memo1.Lines[0]<>'

' do memo1.Lines.Delete(0); Str := Str + '3-' + FormatDateTime('hh:mm:ss:zzz', now) + CHAR_CRLF; //borro lineas de detras de ... while memo1.Lines[memo1.Lines.Count-1]<>'
' do memo1.Lines.Delete(memo1.Lines.Count-1); memo1.Lines.Delete(memo1.Lines.Count-1); memo1.Lines.Delete(memo1.Lines.Count-1); Str := Str + '4-' + FormatDateTime('hh:mm:ss:zzz', now) + CHAR_CRLF; // Añado hoja de estilos a la primera linea memo1.lines[0]:= '

'; Str := Str + '5-' + FormatDateTime('hh:mm:ss:zzz', now) + CHAR_CRLF; //reparo los links para que se muestren las imagenes: for x := 0 to Memo1.Lines.Count do memo1.lines[x]:= StringReplace( memo1.Lines[x],'/imagenes/','http://www.aemet.es/imagenes/',[rfReplaceAll]); Str := Str + '6-' + FormatDateTime('hh:mm:ss:zzz', now) + CHAR_CRLF; //cargo el resultado en el webbrowser wb1.LoadFromStrings(memo1.lines); Str := Str + '7-' + FormatDateTime('hh:mm:ss:zzz', now) + CHAR_CRLF; MessageDlg(Str, mtInformation, [mbOK], 0); end;


La ventana que aparece es la siguiente:




Como ves, el tiempo realmente se "pierde"en la petición de la página, y no en las operaciones sobre el memo, aunque supongo que si eliminas los borrados tal y como te he dicho algo ganarías...
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #10  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
Me parece que no,

Haciendo alguna prueba el tiempo que de verdad se nota se pierde al reemplazar para reparar los enlaces

Alguna alternativa a esto?
StringReplace( memo1.Lines[xx],'/imagenes/','http://www.aemet.es/imagenes/',[rfReplaceAll]);
Responder Con Cita
  #11  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
Aunque sea en plan chapucero ya lo he solucionado, ahora es casi instantaneo, ya solo falta limpiar todo lo que sobra, creo que se podrian quitar los memos, (pero no se como trabajar por lineas en un string):
El problema estaba en usar un memo linea por linea en el StringReplace en vez de usar el memo.Lines.text, usando un String como ya habiais dicho muchos la carga es practicamente instantanea.

Código PHP:
var ind,tt:integer;
begin
//cargo la web en un memo
memo1.Lines.Text:=idHttp1.Get('http://www.aemet.es/es/eltiempo/prediccion/localidades?l=22001');
 
 for 
ind := 0 to Memo1.Lines.count do
   
begin
    
if Memo1.Lines[ind]='<h2 class="titulo">' then
        begin
           
for tt := ind to Memo1.Lines.count do
            
begin
             memo2
.Lines.Add(Memo1.Lines[tt]);
              if 
Memo1.Lines[tt]=' <form name="frmMunicipio" method="get" action="/es/eltiempo/prediccion/localidades">' then
                begin
                 memo2
.lines[0]:= '<link rel="stylesheet" type="text/css" media="screen"  href="http://www.aemet.es/css/estilos.css" /><h2 class="titulo">';
                 
memo2.Lines.text:= StringReplacememo2.Lines.text,'/imagenes/','http://www.aemet.es/imagenes/',[rfReplaceAll]);
                 
wb1.LoadFromStrings(Memo2.lines);
                 exit
                
end;
            
end;
         
end;
      
end;
 
end

Última edición por cocute fecha: 09-12-2009 a las 15:57:24.
Responder Con Cita
  #12  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
He probado a quitar los memos y poner 2 tstringlist pero no me funciona, no hace nada, tambien he probado con Tstrings pero me da "error abtracto" o algo asi.
Que puede fallar? el mismo código con memos funciona.


Código PHP:
procedure TForm1.FormActivate(SenderTObject);
var 
ind,tt:integer;
    
file1,file2:TStringlist;
begin
file1
:= TStringlist.create;
file2:= TStringlist.create;
file1.text:=idHttp1.Get('http://www.aemet.es/es/eltiempo/prediccion/localidades?l=22001');
 for 
ind := 0 to file1.Count-do
   
begin
    
if file1.ValueFromIndex[ind]='<h2 class="titulo">' then
        begin
           
for tt := ind to file1.Count-do
            
begin
             file2
.Add(file1.ValueFromIndex[tt]);
              if 
file1.ValueFromIndex[tt]=' <form name="frmMunicipio" method="get" action="/es/eltiempo/prediccion/localidades">' then
                begin
                 file2
.ValueFromIndex[0]:= '<link rel="stylesheet" type="text/css" media="screen"  href="http://www.aemet.es/css/estilos.css" /><h2 class="titulo">';
                 
file2.text:= StringReplacefile2.text,'/imagenes/','http://www.aemet.es/imagenes/',[rfReplaceAll]);
                 
wb1.LoadFromStrings(file2);
                 
file1.Free;
                 
file2.Free;
                 exit
                
end;
            
end;
         
end;
      
end
end

Última edición por cocute fecha: 09-12-2009 a las 16:02:51.
Responder Con Cita
  #13  
Antiguo 09-12-2009
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Cita:
Empezado por cocute Ver Mensaje
Aunque sea en plan chapucero ya lo he solucionado, ahora es casi instantaneo, ya solo falta limpiar todo lo que sobra, creo que se podrian quitar los memos, (pero no se como trabajar por lineas en un string):
Si ya trabajas con la propiedad Lines del TMemo, ya estás trabajando con un TStringList:

Código Delphi [-]
// Esto:
Memo1.Lines.Count
// Equivale a esto:
StringListVar.Count

// Esto:
Memo1.Lines[tt]
// Equivale a esto:
StringListVar[tt]

Como verás en los ejemplos anteriores, es lo mismo...


Saludos...
Responder Con Cita
  #14  
Antiguo 09-12-2009
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Cita:
Empezado por cocute Ver Mensaje
He probado a quitar los memos y poner 2 tstringlist pero no me funciona, no hace nada, tambien he probado con Tstrings pero me da "error abtracto" o algo asi.
Que puede fallar? el mismo código con memos funciona.


Código PHP:
procedure TForm1.FormActivate(SenderTObject);
var 
ind,tt:integer;
    
file1,file2:TStringlist;
begin
file1
:= TStringlist.create;
file2:= TStringlist.create;
file1.text:=idHttp1.Get('http://www.aemet.es/es/eltiempo/prediccion/localidades?l=22080');
 for 
ind := 0 to file1.Count-do
   
begin
    
if file1.ValueFromIndex[ind]='<h2 class="titulo">' then
        begin
           
for tt := ind to file1.Count-do
            
begin
             file2
.Add(file1.ValueFromIndex[tt]);
              if 
file1.ValueFromIndex[tt]=' <form name="frmMunicipio" method="get" action="/es/eltiempo/prediccion/localidades">' then
                begin
                 file2
.ValueFromIndex[0]:= '<link rel="stylesheet" type="text/css" media="screen"  href="http://www.aemet.es/css/estilos.css" /><h2 class="titulo">';
                 
file2.text:= StringReplacefile2.text,'/imagenes/','http://www.aemet.es/imagenes/',[rfReplaceAll]);
                 
wb1.LoadFromStrings(file2);
                 
file1.Free;
                 
file2.Free;
                 exit
                
end;
            
end;
         
end;
      
end
end
Checando este código con el que pusiste usando el TMemo, veo que es muy diferente. Aquí una versión usando TStringList:

Código Delphi [-]
var
  Web: TStringList;
  Temp: TStringList;
  ind: Integer;
  tt: Integer;

begin
  Web := TStringList.Create;
  Temp := TStringList.Create;
  try
    //cargo la web en un TStringList
    Web.Text := idHttp1.Get('http://www.aemet.es/es/eltiempo/prediccion/localidades?l=22001');
    for ind := 0 to Pred(Web.Count) do
      if Web[ind] = '< h2 class="titulo" >' then
        for tt := ind to Pred(Web.Count) do
        begin
          Temp.Add(Web[tt]);
          if Web[tt] = ' < form name="frmMunicipio" method="get" ' +
            'action="/es/eltiempo/prediccion/localidades" >' then
          begin
            Temp[0] := '< link rel="stylesheet" type="text/css" media="screen" ' + 
              'href="http://www.aemet.es/css/estilos.css" / >< h2 class="titulo" >';
            Temp.Text := StringReplace(Temp.Text, '/imagenes/', 
              'http://www.aemet.es/imagenes/', [rfReplaceAll]);
            wb1.LoadFromStrings(Temp);
            Exit
          end
        end
  finally
    Web.Free;
    Temp.Free
  end
end;


Saludos...

P.D. TString es una clase abstracta y es por eso que cuando quieres instanciar un objeto de esa clase obtienes el error "abstracto"

Última edición por maeyanes fecha: 09-12-2009 a las 17:04:27.
Responder Con Cita
  #15  
Antiguo 09-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por cocute Ver Mensaje
He probado a quitar los memos y poner 2 tstringlist pero no me funciona, no hace nada, tambien he probado con Tstrings pero me da "error abtracto" o algo asi.
Que puede fallar? el mismo código con memos funciona.
Si a tí te va bien con los 2 memos (a mi no me funciona) puedes dejarlo así y en todo caso utilizar BeginUpdate y EndUpdate para eliminar los retardos de pintado.

Utilizar TStrings/TStringList no te aportará más velocidad, ya que las propias Lines del componente Memo ya son TStrings, simplemente era para que no tuvieras que utilizar TMemos sin ser necesario.

El primer código utilizando TStrings sería así:

Código PHP:
procedure TForm1.FormActivate(SenderTObject);
var
  
x:integer;
  
TS:TStrings;
begin

  TS 
:= TStringList.Create();
  try
    
TS.Text :=idHttp1.Get('http://www.aemet.es/es/eltiempo/prediccion/localidades?l=22001');

    while 
TS[0]<>'<h2 class="titulo">' do begin
      TS
.Delete(0);
    
end;

    while 
TS[TS.Count-1]<>'  <form name="frmMunicipio" method="get" action="/es/eltiempo/prediccion/localidades">' do begin
      TS
.Delete(TS.Count-1);
    
end;

    
TS.Delete(TS.Count-1);
    
TS.Delete(TS.Count-1);

    
TS[0]:= '<link rel="stylesheet" type="text/css" media="screen"  href="http://www.aemet.es/css/estilos.css" /><h2 class="titulo">';

    
TS.Text := StringReplace(TS.Text,
      
'/imagenes/',
      
'http://www.aemet.es/imagenes/',[rfReplaceAll]);

    
wb1.LoadFromStrings(TS);
  
finally
    FreeAndNil
(TS);
   
end;
end
El error abstracto suele dar cuando utilizas como constructor:

Código Delphi [-]
var
  TS:TStrings
begin
  TS := TStrings.Create();

En lugar de esto, ya que TStrings es una clase abstracta.

Código Delphi [-]
var
  TS:TStrings
begin
  TS := TStringList.Create()
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #16  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
pues ninguno de los dos ejemplos que me poneis funcionan, ni el mio con Tstrings tampoco. (aunque deberian)
Será por la version de Delphi que es la 2010¿?

con los memos si funciona.

Última edición por cocute fecha: 09-12-2009 a las 16:31:29.
Responder Con Cita
  #17  
Antiguo 09-12-2009
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.286
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
El último que he puesto yo está compilado con Delphi 2009.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #18  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
pues me esta pasando una cosa muy rara ya que lo que antes me funcionaba ahora no, voy a probar con el delphi 2009 que tengo en otra particion.
Responder Con Cita
  #19  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
Neftali, el que me pones tu compila pero al abrirlo me da error:
List index of bounds (-1), pero me da que aun solucionando eso no funcionara como los otros.

El de maeyanes le pasa lo que al mio con Tstrings compila bien pero no muestra nada.

No se porque solo hay manera de que me funcione el que va con 2 Memos.


He probado a compilar en Delphi 2009 y delphi 2006 y siguen sin funcionar con Tstringlist


Por cierto el enlace base ha variado, no se si por tanto probar lo han cambiado, bueno han cambiado de todas ciudades, por si probais de nuevo cambiadlo a:
http://www.aemet.es/es/eltiempo/pred...s/huesca-22001
o a la ciudad que sea

Última edición por cocute fecha: 09-12-2009 a las 18:11:30.
Responder Con Cita
  #20  
Antiguo 09-12-2009
cocute cocute is offline
Miembro
 
Registrado: nov 2008
Posts: 403
Poder: 16
cocute Va por buen camino
por cierto, aparte veo que el componente EmbeddedWB tiene una opcion para meterle una hoja de estilos (HOSTCSS) sin tener que cargarla via web.
Asi que aun se gana más en velociodad, ya que la hoja de estilos es mas pesada que la web en si.
Aunque seria conveniente dejar solo lo que se emplea del fichero.

Última edición por cocute fecha: 09-12-2009 a las 19:58:58.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Alguien sabe como hacer esto? MaMu Gráficos 3 18-05-2007 18:33:43
Alguien sabe como hacer que una query sea modificable pjmedina Varios 20 12-04-2007 11:17:27
Alguien sabe como hacer que tu aplicacion se ejecute... Supra Varios 7 05-02-2005 21:10:09
Alguien sabe como hacer un ShotDown a Firebird 1.51???? AGAG4 Conexión con bases de datos 3 28-10-2004 18:02:21
¿alguien sabe hacer esto? (conexion a mySQL desde delphi pero sin acceso...) seccion31 Internet 24 27-08-2004 17:14:23


La franja horaria es GMT +2. Ahora son las 00:36:58.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi