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