Club Delphi  
    Paypal   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

Coloboración Paypal con ClubDelphi

 
 
Herramientas Buscar en Tema Desplegado
  #7  
Antiguo 15-07-2003
nachoasensio nachoasensio is offline
Miembro
 
Registrado: may 2003
Ubicación: Málaga
Posts: 61
Poder: 24
nachoasensio Va por buen camino
Efectivamente, cadetill tiene razón (eso me pasa por no dedicar más tiempo a pensar en el problema y responder demasiado deprisa).

Otra posible solución es declarar el fichero FileReg directamente como TextFile y "esconder" el número en el propio fichero, delimitado por un par de caracteres que no se utilicen en el fichero, por ejemplo |45|.´Creo que es la solución más sencilla. La primera línea contiene el número, las siguientes contienen el texto, hasta que se encuentre el delimitador; éste indicará que estamos ante otro registro; es decir:

|45|
dhjfsd sdjklh sdh fs fsd fsld fl sdfsdh fhsdf
sdfs
df
sdf
sdf
sdfsd fgasd fsdjfgsd fjgs d fs
|34|
dfl´ñskd f sdfj sdklñfañs ñfasdññfasñdfsadf
asd f
asd
fa
sd
fsdf asdjkl fasdjklfasd f
ds
fda
s fasd
|27|
sdjk fksf
sdfsd
f
d
s
f


Meter la información es ahora trivial. Para sacarla basta ir buscando la letra '|' con Pos, con algo como:

Memo1.Lines.LoadFromFile('..........');

Texto := Memo1.Text;
cont := 1;

//1ª aparición de '|'
Pos1 := Pos('|', Texto);

while (Pos1 > 0) do
begin

// 2ª aparición de '|'
Pos2 := Pos('|'+Chr(13)+Chr(10), Texto);

//Extraemos el núm. Numero[i] es un array de enteros
Numero[cont] := StrToInt(Copy(Texto, Pos1+1, Pos2-1));

// Eliminamos el '|nº|'+Salto de línea
Texto := Copy(Texto, Pos2+3, Length(Texto));

// Buscamos el siguiente '|'
Pos1 := Pos('|', Texto);

if Pos1 > 0 then
//Extraemos el texto del registro cont
Contenido[cont] := Copy(Texto, 1, Pos1-3); // El -3 es para
// eliminar el salto de línea tras el texto

// Incrementamos el contador
INC(cont);
end; // del while


Tras el bucle en Numero[i] están los números y en Contenido[i] están los contenidos. Hay que iterar desde 1 hasta cont-1.

Nota: el código lo he escrito al vuelo, a lo mejos se me ha pasado algo.

Espero que, ahora sí , te sirva.

Un saludo

Nacho
Responder Con Cita
 


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


La franja horaria es GMT +2. Ahora son las 17:04:07.


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