Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Colocarme al final de la cadena y darle un Intro (https://www.clubdelphi.com/foros/showthread.php?t=18518)

Nbull 15-02-2005 11:11:04

Colocarme al final de la cadena y darle un Intro
 
Hola a tod@s, estoy intentando hacer un tarificador de llamadas y que me guarde las tramas en un archivo, lo tengo todo echo lo que pasa es que en el archivo quiero que me guarde solo las tramas y seguidas.

Me explico, en el memo tengo todo lo que me manda el Modem los comandos AT etc... y por último las tramas.

Todas las tramas comienzan con 00 y tienen una longitud de 166 caracteres, el problema es que yo quiero tenerlas en el archivo de esta forma:

00 1234.......
00 3456.....
00 2312.....

Y en el memo me vienen primero los comandos AT y luego la centralita me manda las tramas unas detras de otras con el delimitador "|"al final de los 166 caracteres.

Como puedo conseguir que en el Memo Auxiliar que tengo me aparezcan las tramas como yo quiero.

No se si me he explicado,pero, de antenamano Gracias.

Un saludo.

yusnerqui 15-02-2005 15:01:36

Hola
 
Si tienes delphi de la versión 5 en adelante tienes las propiedades Delimiter y DelimitedText del objeto TStrings, luego puedes usarla de la siguiente forma:

Código Delphi [-]
  Memo1.Lines.Delimiter := '|';
  Memo1.Lines.DelimitedText := las_tramas;

Espero que sea lo que buscas.

Saludos Yusnerqui

lgarcia 15-02-2005 17:23:33

Colocarme al final de la cadena y darle un Intro
 
Hola

Por lo que pude interpretar de tu mensaje se podria solucionar de la siguiente manera si analizas el codigo que a continuacion te muestro:

Código Delphi [-]
procedure TFormConversionLotes.ButtonAceptarClick(Sender: TObject);
var
  x, l, cantidad: Integer;
  s, v, codigo, nombre: String;
  importe: currency;
begin
  if OpenDialog.Execute then
  begin
    X:= 0;
    s:= ExtractFileName(OpenDialog.FileName);
    AssignFile(F, s);
    Reset(F);
    NombreFichero;
    nombre:= 'Venta ' + CBTienda.Text + ' ' + fechasalida + '.txt';
    AssignFile(F1, 'C:\Archivos de programa\Tienda\' + CBTienda.Text + '\' + nombre);
    Rewrite(F1);
    while not Eof(F) do
    begin
      Readln(f, v);
      l:= length(v);
      x:= pos('AT', v);
      v:= copy(v, length(codigo), l);
      x:= pos(';', v);
      Delete(v, 1, x);
      x:= pos(';', v);
      Delete(v, 1, x);
      x:= pos(';', v);
      Delete(v, 1, x);
      x:= pos(';', v);
      cantidad:= StrToInt(copy(v, 1, x-1));
      x:= pos(';', v);
      Delete(v, 1, x);
      x:= pos(';', v);
      Delete(v, x, 5);
      importe:= StrToCurr(v);
      Convertir;
      Writeln(F1, codtrasval + ';;;' + Trim(Descripcionplu) + ';' +
                   FormatFloat('0.00' , preciocosto) + ';' +
                   FormatFloat('0.00' , precioventa) + ';' +
                   IntToStr(cantidad) + ';' + DateToStr(DTP1.Date) + ';4;' +
                   IntToStr(CBTienda.Keyvalue) + ';' + IntToStr(categoria) + ';1;');
      end;
    end;
    CloseFile(F);
    CloseFile(F1);
    ShowMessage(' El fichero de ventas ' + nombre + ' ha sido creado exitosamente');
  end;
end;

Donde F y F1 son variables de tipo Text;

Esto lo saque de un programa que hice o sea que con el pos() vas controlando la posicion que tu quieres en la cadena y con el copy vas asignandose a las variables que luego vas a insertar en el fichero de salida.

Esperando resolver tu problema

Saludos
Luis Garcia


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

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