Jak zapisać?

0

Chciałbym skorzystać z SaveDialog = Problem to zapis zawartości Edit (Kiladziesiąt pól) do jeszcze nieistniejącego pliku.Z góry dzięki za pomoc.

0

if Savedialog.Execute then Memo.Lines.SaveToFile(SaveDialog.FileName);

Fojcik

0

var
F:TextFile;
begin
AssignFile(F, 'c:\mojplik.txt');
Rewrite(F); * lub Append(F); jesli dopisywanie na koncu istniejacego pliku
Writeln(F,Edit1.Text);
Writeln(F,Edit2.Text);
Writeln(F,Edit3.Text);
CloseFile(F);
end;

albo, jesli Edity sa ponumerowane kolejno:

var
F:TextFile;
i: integer;
Editek : TEdit;
begin
AssignFile(F, 'c:\mojplik.txt');
Rewrite(F); * lub Append(F); jesli dopisywanie na koncu istniejacego pliku
for i:=1 to 3 do
begin
Editek:=FindComponent('Edit'+IntTostr(i)) as TEdit;
Writeln(F,Editek.Text);
end;
CloseFile(F);
end;
--Pawel

Delphi6

0

Skupilem sie na problemie wielu Editow i zapomnialem ze ma byc SaveDialog. Oczywiscie powinno byc:

If SaveDialog.Execute then...

(...)
AssignFile(F, SaveDialog.FileName);

itd..
--Pawel

Delphi6

0

Dzięki, dzięki jeszcze raz dzięki!

0

Faktycznie nie zauwazylem ze to edity :)
Moja propozycja :

procedure TFormX.SaveToFile(filename : AnsiString);
var licznik : Word;
ts : TStrings;
begin
try
ts := TStringList.Create;
for licznik := 0 to ComponentCount-1 do
if Components[licznik].ClassName='TEdit' then ts.Add((Components[licznik] as TEdit).Text);
{przeszuka wszystkie kontrolki i jesli to bedzie Tedit to jego zawartosc doda do ts}
ts.saveToFile(filename);
finally
ts.Free;
end;
end;

a w programie

if SaveDialog.Execute then SaveTofile(SaveDialog.fileName);

Pozdrawiam
Fojcik

P.S. Pisane bylo "z pamieci" bez proby kompilacji -wiec moze gdzies trzeba dodac srednik :)

0

Pozwale sobie mniemac ze moje rozwiazanie jest lepsze. W tym mianowicie, ze rozwiazanie Fojcika zrzuci do pliku wszystkie Edity na formie jak leci (co nie musi byc porzadane), zas moje tylko te, ktorych nazwy maja postac Editn (gdzie n=1 do 3). Przez inteligentne nazywanie Editow mozna (przy moim rozwiazaniu) zrzucic do pliku tylko te Edity, ktore sie tam powinny znalezc. No i chyba u mnie latwiej panowac nad kolejnoscia w jakiej poszczegolne Edity znajda sie w pliku.
--Pawel

Delphi6

0

Jaka jest buzka na wyrazenie wstydu?? Ja naprawde wiem, ze pisze sie pożądane!!!--Pawel

Delphi6

0

Ale ja nie mowilem o tym czyje rozwiazanie jest lepsze. Zglosilem tylko propozycje ...
:-)

Ale jesli juz poruszasz ten temat to powiem tylko tyle ze nie zgodzilbym sie - bowiem u mnie jest kontrola czy kontrolka jest fakycznie editem - u ciebie w momencie gdy
nazwalbym sobie Labela jako Edit4 program by sie wysypal - to tylko przyklad. Nie wspomne juz o rozwiazaniu problemu zapisu do pliku. W moim przypadku operujac na TStrings mozna z elementami przed zapisem do pliku zrobic praktycznie wszystko

  • np: posortowac.
    Ponadto wyszukiwanie X kontrolek jest procesem dluszym niz jednorazowe przejscie przez wszystkie kontrolki. Jesli chodzi o zawezenie do nazwy wystarczy dopisac linie
    if (Components[licznik] as TEdit).Name=.... i juz mam kontrole nad nazewnictwem - przy czym zachowam jednorazowe przejscie przez liste kontrolek i bede mial pewnosc ze kotrolka jest Editem.

Tak wiec - sam widzisz ze twoj kod moze byc jedynie uzupelniniem do mojego ...

0

Razem bysmy stworzyli swietny kod ;)--Pawel

Delphi6

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