FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Hola otra vez siento ser tan pesado.
Con ese cambio que me diste me sigue metiendo mal los datos, mete la categoría en el estado en la mayoría de los registros, he probado a mezclar tu idea con la mía, y lo hace bien, el problema es que los registros demasiado largos me los mete en el siguiente registro, entiendo que es porque el TStringList tendrá un límite de caracteres, te muestro el código. Código:
if(OpenDialog1->Execute()) { TStringList *TS = new TStringList; TS->LoadFromFile(OpenDialog1->FileName); XCarga->Show(); XCarga->ProgressBar1->Min = 0; XCarga->ProgressBar1->Max = TS->Count; int cont=0; int col=0; String referencia=""; for(int i=0; i< TS->Count; i++) { cont=0; col=0; XCarga->ProgressBar1->Position=i; XCarga->Caption="Leidno .CSV .. Linea: "+i; for (int j=1;j<=TS->Strings[i].Length();j++) { if (TS->Strings[i][j]!= ' ') { cont=0; if (TS->Strings[i][j] == ';') { StringGrid1->Cells[col][i] = referencia; referencia=""; col++; } else { referencia = referencia+TS->Strings[i][j]; } } if (TS->Strings[i][j] == ' ') { cont++; if (cont>2) break; } } } Si sabes alguna forma de solucionar el problema usando el código que antes me mostraste seria genial, si no me gustaría saber si el TStringList tiene límite de caracteres y si se puede ampliar este límite. Gracias por tu paciencia que ha de ser mucha. |
#2
|
||||
|
||||
Hola.
La capacidad de cada línea de TStringList es la que tiene la propiedad vectorial Strings cuyos elementos son de tipo AnsiString y según la ayuda de Builder C++ es: Código:
Type Maximum length Memory required Used for AnsiString ~2^31 characters 4 bytes to 2GB 8-bit (ANSI) characters Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#3
|
|||
|
|||
Aquí os dejo un ejemplo de csv comprimido, contiene 1 registro demasiado largo, el cual me da conflictos como te he comentado anteriormente.
De nuevo gracias por tu ayuda. Un Saludo. |
#4
|
||||
|
||||
Hola ErYcK.
No me queda muy en claro la definición de la cabecera (columnas) ¿ Conocés cuantas y cuales son ? Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
|||
|
|||
Es que es algo extraño, te comento:
La primera linea del csv guarda los nombres de los campos de una tabla denominada Productos, pero a partir de ahí se guardan los valores de estos campos que son 12 si no me equivoco, seguidos de una característica y el valor de la misma, el tecla esta en que cada producto tiene unas características, algunos más que otros entonces no se sabe cuantas columnas hay hasta que no se lee el csv. Yo en el StringGrid le tengo puesto un limite de columnas suficientemente alto como para que pudiese entrar el registro mas largo, y después cuando lo paso a la base de datos desde el StringGrid guardo los 12 primeros campos en una tabla y las características que le siguen las voy metiendo en otra tabla relacionada con Productos, pero ese proceso en principio si que esta listo, el problema es que tiene que cargarse correctamente el StringGrid para que funcione. No se si me he expresado con claridad, el tema es algo rebuscado. Gracias por el esfuerzo. Un Saludo. |
#6
|
||||
|
||||
Hola ErYcK.
Cita:
Código:
00)Referencia :19974; 01)Estado; :1; 02)Categoría (Español); :PUERICULTURA; 03)SubCategoría 1 (Español); :HORA DE JUGAR; 04)SubCategoría 2 (Español); :GANDULITAS Y COLUMPIOS; 05)SubCategoría 3 (Español); :; 06)Nombre; :HAMACA PLAY BABY; 07)Keywords; :; 08)Marca; :PLAY BABY; 09)Descripción; :; 10)Fotos (separadas por ,); :HAMACA-4.jpg,HAMACA-3.jpg,HAMACA-2.jpg,HAMACA-1.jpg,HAMACA-5.jpg,HAMACA-6.jpg; Cita:
Con ese formato, no creo posible aplicar los métodos que te sugerí ya que la aparición de los datos no pareciera obedecer a un patrón repetitivo. Saludos.
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... Última edición por ecfisa fecha: 20-06-2012 a las 18:27:29. |
#7
|
|||
|
|||
Esos dos campos de los que me hablas son campos que relleno automáticamente, el de CATEGORÍAS, siempre se rellena con eso, y el otro se rellena con la categoría y las subcategorias que tenga el producto separadas con '/'.
Pero claro eso lo hago cuando doy altas aquí simplemente me interesa leerlas. Respecto a lo que te pregunté sobre los StringList es porque me mete parte de los datos de un registro en el siguiente cuando es demasiado largo y no entiendo el porque, por que dado el tamaño que me dijiste que tenia no tendría sentido que llegase al límite ¿no?. Un Saludo |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Lentitud en ADO | JF Sebastian | Conexión con bases de datos | 0 | 16-03-2008 11:06:26 |
Lentitud Firebird | mjjj | Conexión con bases de datos | 16 | 13-01-2008 17:35:06 |
Lentitud en la red. | Carlos Arevalo | Varios | 2 | 09-07-2007 19:04:08 |
Lentitud en la red | Ignacio | Conexión con bases de datos | 2 | 26-08-2003 14:09:39 |
|