Dane oddzielone spacja

0

Witam,
Mam pytanie jak zrobic aby program wczytal plik (zalozmy) txt, w ktorym jest:
Nazwa X Y Z rX rY rZ jakis_tekst
do osobnych Edit'ow

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, StdCtrls;

type
  TForm1 = class(TForm)
    Label1: TLabel;   // name of part
    Edit1: TEdit;     // PosX
    Edit2: TEdit;     // PosY
    Edit3: TEdit;     // PosZ
    Edit4: TEdit;     // RotX
    Edit5: TEdit;     // RotY
    Edit6: TEdit;     // RotZ
    Memo1: TMemo;     // Others
    Button1: TButton;
    OpenDialog1: TOpenDialog;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
  str: string;
  T: TextFile;
begin
 if OpenDialog1.Execute then // dialog
  begin
    AssignFile(T, OpenDialog1.FileName);
    Reset(T);
    Readln(T, str);
// wczytanie do MEMO
    Memo1.Text:= str;
    CloseFile(T);
  end;
end;

end.

Szukalem wiele na ten temat lecz nic konkretnego nie znalazlem, byc moze zle szukalem, ale mysle ze wiecie o co chodzi i pomozecie. U mnie z Delphi nie jest najlepiej :)

Pozdrawiam
Bartosz Bieszka

0

witam
Readln(T, x1,x2,x3...xn);
pozdro

0

Hejka
to proste:) wstaw na forme: Button1, Memo1 i dowolną ilość Edit (nawet 1000 jak chcesz:)

i wklej do buttona mój kod:

var
i,ed:integer;
s:string;
begin
s:='';
ed:=-1;
for i:=1 to length(memo1.Text) do
begin
if memo1.Text<>' ' then
s:=s+memo1.Text[i];
if memo1.Text[i]=' ' then
begin
inc(ed);
TEdit(Components[ed]).Text:=s;
s:='';
end;
end;

ten kod działa w taki sposób że każda informacja w memo1 oddzielona spacją zostaje przypiywana do kolejnego Edita, tych editów mozesz mieć nawet milion ;)

0

Witam,
Piga_87: Sprobowalem twojego kodu, lecz w dziwny sposob z Memo1 tekst zmienia sie rowniez na label'ach i buttonach. Dlatego pisze kolejnego posta w tej sprawie. Moze zle cos wkleilem lub jest jakies drobne nieporozumienie w kodzie.
Gdybys mogl mi pomoc (lub inna pomocna osoba) to jestem dostepny pod numerem gg: 3161895

Ponizej pokazuje blad, ktory powstal:
user image

0

Jezeli chodzi o zapisanie ustawien Twojego programu, albo rekordow z jakiegos typu bazy danych to polecam Ci zapomniec o pliku tekstowym i stworzyc swoj rekordowy typ danych a potem plik tego typu np:

type
   TMojTyp=record
       nazwa:string
       x,y,z:TJakisInnyTyp;
   end;

A potem tam gdzie potrzebujesz:

var
   p:file of TMojTyp;
   rekord:TMojTyp;
begin
   rekord.nazwa:='Elo';
   rekord.x:=cos;
   rekord.y:=cosinnego
   rekord.z:=cosjeszczeinnego;
   AssignFile(p,'C:\plik.dat');
   reset(p);
   read(p,rekord);
   CloseFile(p);
end;

potem po prostu wstawiasz ze zmiennej rekord do editow czy czego sobie chcesz

1 użytkowników online, w tym zalogowanych: 0, gości: 1