Archivos de texto

No se como hacerle para acomodar una serie de valores en un archivo de texto y ajustarlos con los espacios en blanco que yo necesito.
Mira el archivo es así:
12.23 1.235 1.548
1.56 .25 1.25
Y debe quedar asi:
12.23 1.235 1.548
1.56 .25 1.25
Ojala me puedas ayudar.

1 respuesta

Respuesta
1
Lo siento pero no veo diferencia entre lo que tienes y lo que pides...
Hola:
Mira, es que quiero acomodar en columnas justificadas con los valores.
Disculpa, es que cuando envíe los números los acomode justificados, pero cuando se mando el mensaje, lo mando todo del lado izquierdo.
A ver si te sirve esta propuesta:
unit uColumnasfich;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, FileCtrl, DB, DBTables, Grids, DBGrids;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Table1: TTable;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Procedure ExportFichero(ds : TDataset; Campo : String; columnas, tamanoColumnas : Integer; fichero : String);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
ExportFichero(table1, 'salary', 6, 12, 'c:\export.txt');
end;
procedure TForm1.ExportFichero(ds: TDataset; Campo: String; columnas,
tamanoColumnas: Integer; fichero: String);
var
Valor, linea : String;
i, cont : Integer;
F : Textfile;
begin
AssignFile(F, fichero);
Rewrite(F);
cont := 0;
linea := '';
with ds do
begin
First;
while not eof do
begin
Valor := formatfloat('#,##0.00', Fieldbyname(campo).AsFloat);
string
for i := 0 to tamanoColumnas - length(Valor) do
linea := linea + ' ';
linea := linea + Valor;
Inc(cont);
if cont = columnas then
begin
Writeln(F, linea);
cont := 0;
linea := '';
end;
Next;
end;
end;
CloseFile(F);
end;
end.
Gracias por ese código, pero lo que pasa es que creo que no me doy a entender.
Mira es que yo quiero abro un archivo de texto en un richedit y con los valores o datos que están en el archivo quiero que busque caracteres numéricos, si encuentra espacio en blanco después o antes de ese valor numérico que borre 2 o 3 espacios. Por ejm si tengo 3.45 4.5, yo quiero hacer que junte un poco más mis números, más o menos así 3.45 4.5
Espero que me puedas seguir ayudando, te lo agradeceré mucho.
Toma, espero que lo entiendas:
unit uColumnasfich;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, FileCtrl, ComCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
RichEdit1: TRichEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
Procedure ImportFichero(re : TRichEdit; fichero : String);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
Procedure TForm1.ImportFichero(re : TRichEdit; fichero : String);
var
Valor, linea, lineaout, valortmp : String;
i : Integer;
esprimer : Boolean;
F : Textfile;
begin
AssignFile(F, fichero);
Reset(F);
linea := '';
while not eof(F) do
begin
Readln(F, linea);
esprimer := true;
valortmp := '';
for i := 1 to length(linea) do
begin
if linea <> ' ' then
valortmp := valortmp + linea
else begin
if valortmp <> '' then
begin
if esprimer then
begin
lineaout := ' ';
esprimer := false;
end else
lineaout := lineaout + ' ';
lineaout := lineaout + valortmp;
valortmp := '';
end;
end;
end;
re.lines.Add(lineaout);
lineaout := '';
end;
re.lines.Add(lineaout);
CloseFile(F);
end;
(*
###26.7####25.7####23.7####23.4####
###25.4####28.3####30.6####32.2####
###30.0####27.6####27.3####26.8####
y yo quiero ponerlos de la siguiente manera:
#26.7##25.7##23.7##23.4####
#25.4##28.3##30.6##32.2####
#30.0##27.6##27.3##26.8####
*)
procedure TForm1.Button1Click(Sender: TObject);
begin
ImportFichero(RichEdit1, 'c:\input.txt');
end;
end.
Sigo viendo igual "si tengo 3.45 4.5, yo " y "así 3.45 4.5" y creo que es debido a todoexpertos ya que a mi también se me come los espacios y eso dificulta un poco la comprensión del problema.
Envíame un par de lineas del texto inicial a tratar sustituyendo los espacios por # y luego el resultado que quieres también sustituyendo los espacios por #. Y también indícame si el resultado debe ir a un fichero o no.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas