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 07-03-2015
tiqui_loquito tiqui_loquito is offline
Miembro
 
Registrado: oct 2013
Posts: 56
Poder: 11
tiqui_loquito Va por buen camino
Extraer datos de un txt

Hola a todos,

Creo un txt donde guardo el id del paciente y una causa externa en un .txt, separado por una coma.
Ej: 46589,7

Solo guardo un dato en el archivo, no se guarda mas.

Aun soy nuevo en delphi y quisiera saber como extraer los datos.

Mi código es:
Código Delphi [-]
     FicheroCausaExterna := TStringList.Create; 
     Dir:= ExtractFilePath(application.ExeName)+'CausaExterna.txt'; 
     CausaExterna := Fdm.CausaExterna(Datos.CausaExterna); 
 
     if FileExists(Dir) then 
      FicheroCausaExterna.LoadFromFile(Dir) 
     else 
     begin 
      FicheroCausaExterna.Create; 
      FicheroCausaExterna.Add(IntToStr(Datos.Paciente)+','+CausaExterna); 
      FicheroCausaExterna.SaveToFile(Dir); 
     end; 
 
//Aquí quiero extyrar los datos, peor aun no se como
     for i:=0 to FicheroCausaExterna.Count-1 do 
      if FicheroCausaExterna[i]=',' then 
 
 
    if FicheroCausaExterna.Count > 0 then 
     begin 
      CausaExternaAnterior:= FicheroCausaExterna[0]; 
      CambioCauExterna := (CausaExterna<>CausaExternaAnterior); 
 
      if CambioCauExterna then 
      begin 
        FicheroCausaExterna.Clear; 
        FicheroCausaExterna.Add(CausaExterna); 
        FicheroCausaExterna.SaveToFile(Dir); 
      end 
     end;
Gracias

Última edición por nlsgarcia fecha: 07-03-2015 a las 13:59:46. Razón: Sintaxis Delphi
Responder Con Cita
  #2  
Antiguo 07-03-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Yo te recomendaria hacer un bucle en el que llames a ShowMessage con cada string de tu TStringList, asi te das cuenta como carga tu archivo.

En tu ejemplo, la comparacion:
Código Delphi [-]
  if FicheroCausaExterna[i] =',' then

Siempre te va a dar falso, porque tu archivo tiene una sola linea que es la siguiente:

Cita:
46589,7
Por lo tanto tu comparacion se traduce en

Cita:
'46589,7' = ',' --> Falso
Aca te dejo mas info para que leas:
1. Delphi al limite: El objeto TStringList
2. Delphi Basics: TStringList command
Responder Con Cita
  #3  
Antiguo 07-03-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.022
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por tiqui_loquito Ver Mensaje
Hola
Recuerda poner los tags al código fuente, ejemplo:



Gracias
Responder Con Cita
  #4  
Antiguo 07-03-2015
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 tiqui_loquito.

Si no te entendí mal, te hago esta propuesta:
Código Delphi [-]
...
implementation
var
  IdCe: TStrings; // almacena id y causa externa

procedure TForm1.FormCreate(Sender: TObject);
var
  TS: TStrings;
  i,p: Integer;
begin
  IdCe:= TStringList.Create;
  TS:= TStringList.Create;
  try
    TS.LoadFromFile('CausaExterna.txt');
    for i:= 0 to TS.Count-1 do
    begin
      p:= Pos(',',TS[i]);
      IdCe.AddObject(Copy(TS[i], 1, p - 1),
        TObject(StrToInt(Copy(TS[i], p + 1, MaxInt))));
    end;
  finally
    TS.Free;
  end;
end;

procedure AgregarCausa(const Id, Causa: string);
begin
  IdCe.AddObject(Id, TObject(StrToInt(Causa)));
end;

procedure ModificarCausa(const Id, Causa: string);
var
  ix: Integer;
begin
  ix:= IdCe.IndexOf(Id);
  if ix <> -1 then
    IdCe.Objects[ix]:= TObject(StrToInt(Causa));
end;

procedure BorrarCausa(const Id: string);
var
  ix: Integer;
begin
  ix:= IdCe.IndexOf(Id);
  if ix <> -1 then
    IdCe.Delete(ix);
end;

procedure MostrarDatos(TS: TStrings);
var
  i: Integer;
begin
  for i:= 0 to IdCe.Count-1 do
    TS.Add(IdCe[i] { ID } + ' ' +
           IntToStr(Integer(IdCe.Objects[i])) { causa externa});
end;

procedure TForm1.btnDemoClick(Sender: TObject);
begin
  AgregarCausa('11111','0');     // ejemplo agregar
  MostrarDatos(ListBox1.Items);  // mostrar
  ListBox1.Items.Add('------------------------');
  ModificarCausa('11111','11');  // ejemplo modificar
  MostrarDatos(ListBox1.Items);  // mostrar
  BorrarCausa('11111');          // ejemplo borrar
  ...
end;



Saludos
__________________
Daniel Didriksen

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

Última edición por ecfisa fecha: 07-03-2015 a las 21:07:08.
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
Extraer datos de cds pvillano Conexión con bases de datos 5 20-10-2011 16:59:33
extraer datos de un documento word o txt e insertalo en la base de datos Secundino Conexión con bases de datos 5 28-02-2011 11:27:39
Extraer datos de un xml marilinspi Varios 0 17-12-2008 21:51:49
Extraer datos de un Pdf jmlifi Varios 0 30-11-2007 12:37:54
extraer datos de una XML coletaum Varios 2 19-01-2004 14:22:09


La franja horaria es GMT +2. Ahora son las 12:47:20.


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