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 21-12-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Cita:
Empezado por Casimiro Notevi
Si son registros de longitud fija lo tienes sencillo.
Sin que sirva de precendente (dicese de algo que va antes de)...
¿Me lo expliquen?

¿Que quieres decir con eso?
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
Responder Con Cita
  #2  
Antiguo 21-12-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
que si el fichero es de una forma parecida a esta, tiene una cabecera y luego los registros en sí:
xx bytes -> cabecera de longitud la que sea (puede no tener cabecera)
64 bytes -> datos de un registro
64 bytes -> datos de otro registro
64 bytes -> datos de un registro más
64 bytes -> etc...

cada uno de esos 64 bytes (es un ejemplo), pueden estar subdivididos en los campos de la tabla:
08 bytes -> código
32 bytes -> descripción (es el dato que te interesa, creo)
08 bytes -> precio
xx bytes -> etc...


Si este fuese el caso tan sólo tendrías que "saltar" la cabecera y luego leer/saltar a intervalos fijos para los datos que te interesan de cada registro.

Aunque seguro que esta posibilidad ya lo habrás comprobado, era sólo por dar una idea más.
Responder Con Cita
  #3  
Antiguo 21-12-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
Negativo, casimiro, no es de longitud fija.Si lo fuera sería un chollete.
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
Responder Con Cita
  #4  
Antiguo 21-12-2006
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.099
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
al menos podrían decirte qué tipo de archivo es
Responder Con Cita
  #5  
Antiguo 22-12-2006
Avatar de papulo
papulo papulo is offline
Miembro
 
Registrado: ago 2005
Ubicación: Lleida - Cataluña - España -Europa - Planeta tierra - Sistema solar - Via Lactea ...
Posts: 542
Poder: 19
papulo Va por buen camino
He aquí la solución al final. Ya funciona perfectamente y esas cosas.

Si no se entiende, la explicaré (lo cual no dice que sea la mas óptima y la mas eficiente y la mas bonita y... pero me la he currao como he podido)

Código Delphi [-]
procedure TfGlobal.CalcularStarCross;
var
  CharSelected: string;
begin
  sStartCross := '';
  buffer := BuildIniFile.ReadString('XREFER_PARAMETERS', TempList.Strings[1], ''); //Leo el sStarCross del INI
  CharSelected := AnsiLeftStr(buffer, 1);
  buffer := AnsiRightStr(buffer, Length(buffer) - 1);

  repeat
    if (CharSelected <> ',') and (CharSelected <> '[') and (CharSelected <> ']') and (CharSelected <> Chr(39)) then
      begin
        buffer2 := buffer2 + CharSelected;
        CharSelected := AnsiLeftStr(buffer, 1);
        buffer := AnsiRightStr(buffer, Length(buffer) - 1);
      end
    else
      if (CharSelected = ',') then
        begin
          sStartCross := sStartCross + Chr(StrToInt(buffer2));
          CharSelected := AnsiLeftStr(buffer, 1);
          buffer := AnsiRightStr(buffer, Length(buffer) - 1);
          buffer2 := '';
        end
      else
        begin
          CharSelected := AnsiLeftStr(buffer, 1);
          buffer := AnsiRightStr(buffer, Length(buffer) - 1);
        end;
  until CharSelected = ']';

  sStartCross := sStartCross + Chr(StrToInt(buffer2));
  CharSelected := AnsiLeftStr(buffer, 1);
  buffer := AnsiRightStr(buffer, Length(buffer) - 1);
  buffer2 := '';
end;

Después de esta, paso a "Novato en Delphi 88%"
__________________
"El aprendizaje potencia la intuición"
Yo mismo, en un momento de inspiración. v2.0
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
Comparar dos cadenas de texto creus Varios 5 06-03-2009 00:22:13
Obtener un fichero adjunto a un nodo de un fichero XML muntasil Internet 0 18-07-2006 12:57:57
Uso de cadenas zvf OOP 4 05-04-2006 00:55:47
Comparar caracteres tecleados con los de una cadena Calculador Varios 1 16-01-2005 18:36:35
if ... in [] con cadenas???? neon Varios 3 10-12-2004 13:15:39


La franja horaria es GMT +2. Ahora son las 23:03:37.


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