Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 13-08-2013
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 17
darkone2k4 Va por buen camino
Problema con StringList

Salu2 amigos.

Estoy importando un archivo CVS separado por ";" el cual es generado con excel a partir de un XLS normal, pero tengo un problema con lo siguiente:

Aquí dejo 2 líneas de ejemplo que contiene el archivo:
Código Delphi [-]
2014;3;860;202;202;23565857-7;A;R;I;15/10/2011;;354;554;;0;S;;20;131;554;1;41013001;117924;117924;117924;117924;117924;117924;117924;117924;11  7924;117924;117924;117924
2014;3;861;35;35;05148366-9;D;R;I;15/03/2011; ;121;101; ;0;S; ;23;223;101;133;41022003;25742;25742;25742;25742;25742;25742;25742;25742;25742;25742;25742;25742
La primera línea la lee e inserta sin problemas en un StringGrid, pero la segunda produce un error al tratar de insertar el valor que viene después de "15/03/2011", en este caso ' '.

Código Delphi [-]
        for i := 0 to Lineas Do
        Begin
           fila.CommaText := csv.Strings[i];
           fila.Delimiter := ';';
           fila.DelimitedText := fila[0];
           For j := 0 To Columnas Do
               lista.Cells[j+1,i+1] := fila[j];
        End;

Y el error que me da es:
Código SQL [-]
Project Proyecto.exe raised exception class EStringListError with message 'List index out of bounds (11)'. Process stoped.

Espero puedan ayudarme a solucionar este inconveniente.

Salu2.
Responder Con Cita
  #2  
Antiguo 13-08-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
intenta transferir solo hasta ese dato "15/03/2011"

quiza sea un tema de capacidad del stringgrid (Columnas, fila, etc)
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 14-08-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola darkone2k4.

No sé el resultado que deseas lograr, pero si se trata de mostrar los datos separados por ';' encolumnados en el TStringGrid podes hacer:
Código Delphi [-]
...
var
  TS: TStrings;
  i : integer;
begin
  TS := TStringList.Create;
  try
    TS.LoadFromFile('TU_ARCHIVO.CVS');
    for i := 0 to TS.Count-1 do
    begin
      StringGrid1.Rows[i].Delimiter := ';';
      StringGrid1.Rows[i].DelimitedText := TS[i];
    end;
  finally
    TS.Free;
  end;
end;

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 14-08-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
parece que quisiera colocarlo en filas y columnas
el codigo que has colocado esta incompleto
no se sabe el valor de "columnas"
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #5  
Antiguo 14-08-2013
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por oscarac Ver Mensaje
parece que quisiera colocarlo en filas y columnas
el codigo que has colocado esta incompleto
no se sabe el valor de "columnas"
Hola Oscar.

Es cierto, el número de columnas no está definido. Pero hice el código bajo el supuesto que tendrá conocimiento del número máximo de columnas que tiene el archivo que exporta desde Excel y declarará la misma cantidad de columnas en el TStringGrid para así poder contenerlas.

De todos modos si quiere ahorrarse la cuenta , puede obtener el máximo número de columnas de este modo por ejemplo:
Código Delphi [-]
function GetMaxCols(aFileName: TFileName): Integer;
var
  TS1,TS2: TStrings;
  i: Integer;
begin
  Result := 0;
  TS1 := TStringList.Create;
  try
    TS1.LoadFromFile(aFileName);
    for i:= 0 to TS1.Count-1 do
    try
      TS2 := TStringList.Create;
      TS2.Delimiter := ';';
      TS2.DelimitedText := TS1[i];
      if TS2.Count-1 > Result then Result := TS2.Count-1;
    finally
      TS2.Free;
    end;
  finally
    TS1.Free;
  end;
end;

Y usar previo al código anterior:
Código Delphi [-]
begin
   StringGrid1.ColCount := GetMaxCols('TU_ARCHIVO.CVS');
   ...

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 14-08-2013 a las 01:15:50.
Responder Con Cita
  #6  
Antiguo 14-08-2013
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.009
Poder: 20
oscarac Va por buen camino
tendremos q esperarr a ver que dice el amigo darkone2k4
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #7  
Antiguo 14-08-2013
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 17
darkone2k4 Va por buen camino
Hola a todos.
Gracias por sus respuestas.

Efectivamente conozco tanto el número de filas como de columnas.

Voy a probar lo que me comentan y comentaré el resultado.

Muchas gracias.
Responder Con Cita
  #8  
Antiguo 21-08-2013
darkone2k4 darkone2k4 is offline
Miembro
 
Registrado: abr 2008
Posts: 89
Poder: 17
darkone2k4 Va por buen camino
Gracias a sus consejos, pude lograr lo que necesitaba.

salu2.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Problema con Stringlist Anel Hernandez Varios 5 11-10-2011 22:55:16
Duda con StringList Paulao Varios 5 26-06-2008 23:18:49
Problema con StringList MaMu Varios 2 26-05-2007 22:40:45
Problema longitud stringlist.text Bicho OOP 2 12-03-2007 14:12:52
Recorrer un StringList bustio Varios 2 27-02-2005 20:50:21


La franja horaria es GMT +2. Ahora son las 19:25:24.


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