Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   eliminar lineas de un txt. (https://www.clubdelphi.com/foros/showthread.php?t=24345)

jmariano 18-08-2005 18:48:30

Prueba los siguiente (a ver si hay suerte)

Código Delphi [-]
procedure TInventarios.Button2Click(Sender: TObject);
var
  Archivo,Campos: TStringList;
  I, J: Integer;
  Codigo: string;
  Cant : real;
  Linea : Integer;
begin
  Archivo:= TStringList.Create;
  Campos:= TStringList.Create;

  try
    Archivo.LoadFromFile('C:\INVENTARIO.txt');

    for I := 0 to Archivo.Count -1 do
    begin
      Codigo := '';
      Cant := 0;
      Campos.Clear;
      Campos.CommaText:= Archivo[i];

      if Campos.Count >= 2 then
      begin
        Codigo:= Campos[0];
        Cant:= Strtofloat(Campos[1]);
      end;

      if (Codigo <> '') and (Cant > 0) then
      begin
        Linea:= Linea + 1;
        DataModule1.STOMOV.Insert;
        DataModule1.STOMOV.Fields[1].Value := 1;
        DataModule1.STOMOV.Fields[3].Value := Linea;
        DataModule1.STOMOV.Fields[4].Text := DateToStr(Now);
        DataModule1.STOMOV.Fields[5].Value := 530;
        DataModule1.STOMOV.Fields[7].Value := strToInt(Edit4.text);
        DataModule1.STOMOV.Fields[8].Text := Codigo;
        DataModule1.STOMOV.Fields[9].Value := Cant;
        DataModule1.STOMOV.Post;
      end;
    end;
  finally
    Archivo.Free;
    Campos.Free;
  end;
end;

(Como verás, he respetado tu código original añadiéndole sólo unas sentencias)

Chao!

danytorres 18-08-2005 20:22:00

Amigos nose que mas intentar. pero no encuentro la solucion.

roman 18-08-2005 20:32:21

Haz un trazado de la aplicación y dinos exactamente qué contiene la línea del archivo en donde te lanza el error.

// Saludos

jmariano 18-08-2005 20:39:37

¿Probaste el código que especifiqué mas arriba? ¿Que error te dió?.

danytorres 18-08-2005 20:40:59

Roman, el archivo lo genera una pistota de codigos de barra cuando el operador presiona enter en la pistola se genera una lina en blanco en el archivo, esa linea contienedos comas ,,

y el error que me da es cuando le asigno un string vacio a una variable real;

Code:
_________________________________
Cant:= Strtofloat(Campos[1]);
_________________________________

Esto ocurre porque nose como saltar la linea un blanco, bueno tiene dos espacios un blancos separados por dos coma.

jmariano 18-08-2005 20:46:40

Entonces, te valdría con sólo probar que "Campos[1]" no esté vacio antes de asignar el valor

Código Delphi [-]
    ...
    if Campos[1] <> '' then
      Cant := Strtofloat(Campos[1]);
    ...

danytorres 18-08-2005 20:47:58

si jmariano lo probe pero no detiene la linea en blanco,

code:
_______________________________________________
if Campos.Count >= 2 then
begin
Codigo:= Campos[0];
Cant:= Strtofloat(Campos[1]);
end;
_____________________________________________________

el detalle es que campo se es igual a dos por lo siguiente, es como le espleque a roman, la linea en blanco esta formada por dos espacios en blancos que son los dos campos que captura la lectora perop estos estan separados por comas, entonces campos es igial a dos porque esta formado por dos string en blanco.

jmariano 18-08-2005 20:51:27

Sip, ya me di cuenta jeje! (se ve que posteamos casi al mismo tiempo). Pero fíjate en la sentencia que puse antes de tu mensaje (la sentencia "if")

(Eso sí, siempre reinicia las variables "Codigo" y "Cant" por cada línea que leas del archivo)

danytorres 18-08-2005 21:14:30

Gracias jmariano y a todos por el interes en ayudarme, ya resolvi el pequeño problema. Hay momentos en que uno esta mentalmente agotado y la solucion estan sencilla que no la ves. Gracias

haa la solucion fue esta;

Code:
__________________________________________
Cant := 0;
Campos.Clear;
Campos.CommaText:= Archivo[i];

if (Campos[0] <> '') and (Campos[1] <> '') then
begin
Codigo:= Campos[0];
Cant:= Strtofloat(Campos[1]);
end;
____________________________________________


La franja horaria es GMT +2. Ahora son las 05:21:08.

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