Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Snimanje podataka iz StringGrid-a u fajl?

[es] :: Pascal / Delphi / Kylix :: Snimanje podataka iz StringGrid-a u fajl?

[ Pregleda: 2950 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

gygy
Dragan Grbic

Član broj: 7861
Poruke: 205
*.sezampro.yu.



Profil

icon Snimanje podataka iz StringGrid-a u fajl?15.11.2004. u 23:28 - pre 236 meseci
Kako da snimim StringGrid u fajl?
Npr imam 3 kolone:
1. Naziv fajla
2. Putanja
3. Ekstenzija
i sad kako da kad kliknem recimo na dugme1 snimi recimo u NF.txt, a da kad kliknem na dugme2 iscita u String grid?
Hvala unapred!!!
GYGY
 
Odgovor na temu

broker

Član broj: 2415
Poruke: 8514
212.62.59.*



+11 Profil

icon Re: Snimanje podataka iz StringGrid-a u fajl?16.11.2004. u 09:57 - pre 236 meseci
Imas propertije:

Cells - kroz ovo string grid vidis kao matricu
Cols - kroz ovo vidis sve celije u izabranoj koloni
Rows - kroz ovo vidis sve celije u izabranom redu

ColCount - da ti broj kolona u gridu
Rowcount - da ti broj redova u gridu

Col - Daje ti broj tekuce kolone
Row - Daje ti broj tekuceg reda

A sve ovo dobijes detaljno opisano kada u Delphi editoru otkucas TStringGrid, stavis kursor u tu rec i pritisnes F1
 
Odgovor na temu

gygy
Dragan Grbic

Član broj: 7861
Poruke: 205
*.sezampro.yu.



Profil

icon Re: Snimanje podataka iz StringGrid-a u fajl?16.11.2004. u 14:48 - pre 236 meseci
Code:
procedure TForm1.Button2Click(Sender: TObject);
begin
StringGrid1.Cols[0].SaveToFile('C:\Lista.txt');
end;

Sa ovim kodom ce prva kolona lepo biti snimljena, ali kako da vise kolona snimim u isti taj txt?
I kako to posle da iscitam?

GYGY
 
Odgovor na temu

hkalic

Član broj: 34167
Poruke: 8
*.cmu.carnet.hr.



Profil

icon Re: Snimanje podataka iz StringGrid-a u fajl?16.11.2004. u 17:54 - pre 236 meseci
Možeš npr. napraviti .cvs fajl (tj. comma separated file).

Kreiraš TStringList i onda ga puniš kolona1;kolona2;kolona3 i onda novi red isto tako. Na kraju ga snimiš sa .SaveToFile(ime.cvs) pa ga i Excel može učitati.

Naravno ako ga hočeš učitati u StringGrid onda moraš "parsat" svaki red iz TStringList i puniti tablicu.

Naravno možeš napraviti .xml fajl ako ti to ide od ruke.
 
Odgovor na temu

gygy
Dragan Grbic

Član broj: 7861
Poruke: 205
*.flashnet.co.yu.



Profil

icon Re: Snimanje podataka iz StringGrid-a u fajl?16.11.2004. u 22:24 - pre 236 meseci
Ajde brate malo pojasni!
Ako nije problem!
GYGY
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
213.244.197.*

Sajt: www.diy-fever.com


+1 Profil

icon Re: Snimanje podataka iz StringGrid-a u fajl?17.11.2004. u 01:39 - pre 236 meseci
evo ti resenje za XML, mozda je gadjanje mrava bazukom ako mozes da naucis ponesto :)

za pocetak stavi komponentu TXMLDocument (iz palete Internet) i krsti je XML (kreativno)

Code:

procedure ToFile(Grid: TStringGrid; FileName: string);
var i, j: Integer;
     Node, SubNode: IXMLNode;
begin
  XML.Active := True;
  try
    XML.DocumentElement := XML.CreateNode('StringGrid');
    XML.DocumentElement.Attributes['RowCount'] := Grid.RowCount;
    XML.DocumentElement.Attributes['ColCount'] := Grid.ColCount;
    for i := 0 to Grid.RowCount - 1  do
      begin
        Node := XML.CreateNode('Row');
        XML.DocumentElement.ChildNodes.Add(Node);
        for j := 0 to Grid.RowCount - 1 do
          begin
             SubNode := XML.CreateNode('Cell');
             SubNode.NodeValue := Grid.Cells[j, i];
             Node.ChildNodes.Add(SubNode);  
          end
      end;
    XML.SaveToFile(FileName)
  finally
    XML.Active := False;
  end;
end;

procedure FromFile(Grid: TStringGrid; FileName: string);
var i, j: Integer;
begin
  XML.Active := True;
  try
    Grid.RowCount := XML.DocumentElement.Attributes['RowCount'];
    Grid.ColCount := XML.DocumentElement.Attributes['ColCount'];
    for i := 0 to XML.DocumentElement.ChildNode.Count - 1  do
      for j := 0 to XML.DocumentElement.ChildNode.Nodes[i].ChildNode.Count - 1 do
       Grid.Cells[j, i] := XML.DocumentElement.ChildNode.Nodes[i].ChildNode.Nodes[j].NodeValue;
    XML.SaveToFile(FileName)
  finally
    XML.Active := False;
  end;
end;


i mala napomena, ovo ti kucam iz glave, moguce da nesto tu ne stima...ali uz malo napora moze da se dovede u red (recimo da ubacis atribute za fixed kolone i vrste i slicno)

pozdravi
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

gygy
Dragan Grbic

Član broj: 7861
Poruke: 205
*.sezampro.yu.



Profil

icon Re: Snimanje podataka iz StringGrid-a u fajl?17.11.2004. u 13:08 - pre 236 meseci
Hvala bancika!
Code:
procedure ToFile(Grid: TStringGrid; FileName: string);
var i, j: Integer;
     Node, SubNode: IXMLNode;
begin
  Form1.XML.Active := True;
  try
    Form1.XML.DocumentElement := Form1.XML.CreateNode('StringGrid');
    Form1.XML.DocumentElement.Attributes['RowCount'] := Grid.RowCount;
    Form1.XML.DocumentElement.Attributes['ColCount'] := Grid.ColCount;
    for i := 0 to Grid.RowCount - 1  do
      begin
        Node := Form1.XML.CreateNode('Row');
        Form1.XML.DocumentElement.ChildNodes.Add(Node);
        for j := 0 to Grid.RowCount - 1 do 
          begin
             SubNode := Form1.XML.CreateNode('Cell');
             SubNode.NodeValue := Grid.Cells[j, i];
             Node.ChildNodes.Add(SubNode);
          end
      end;
    Form1.XML.SaveToFile('c\lista.xml')
  finally
    Form1.XML.Active := False;
  end;
end;

ferca!
for j := 0 to Grid.RowCount - 1 do
//samo sam stavio Grid.ColCount,manja je baza

A zasta sluzi onaj drugi kod?
Samo me zanima jos kako da iscitam u grid iz *.xml-a.
I imam jos jedan problem sa datumom kako da u *.xml-u naznacim da je 4-ta kolona datum (zbog sortiranja)?
Hvala!

GYGY
 
Odgovor na temu

bancika
Branislav Stojkovic

Član broj: 24844
Poruke: 631
*.vdial.verat.net.

Sajt: www.diy-fever.com


+1 Profil

icon Re: Snimanje podataka iz StringGrid-a u fajl?17.11.2004. u 23:09 - pre 236 meseci
zar te ovo FromFile nije asociralo na to da se cita iz fajla u grid? Cudno :)
samo sam ispustio jedan red i jedan vise ima (iskopirao sam greskom iz prve procedure), evo ispravljene
Code:

procedure FromFile(Grid: TStringGrid; FileName: string);
var i, j: Integer;
begin
  XML.FileName := FileName;
  XML.Active := True;
  try
    Grid.RowCount := XML.DocumentElement.Attributes['RowCount'];
    Grid.ColCount := XML.DocumentElement.Attributes['ColCount'];
    for i := 0 to XML.DocumentElement.ChildNode.Count - 1  do
      for j := 0 to XML.DocumentElement.ChildNode.Nodes[i].ChildNode.Count - 1 do
       Grid.Cells[j, i] := XML.DocumentElement.ChildNode.Nodes[i].ChildNode.Nodes[j].NodeValue;
  finally
    XML.Active := False;
  end;
end;


sto se tice ovog, nisam te bas razumeo najbolje sta hoces. ali mozes recimo da ubacis prolikom upisa u fajl da upisuje za svaku kolonu index i tip, recimo, da izgleda ovako XML

Code:

<column Index="5" Type="date"/>


a ti provali kako da ovo uradis u kodu i kako da to posle procitas :) mislim da sam ti dao dovoljno materijala da provalis i sam

pozdrav
Ride the rainbow, crack the sky

DIY gitare, pojacala i efekti www.diy-fever.com
 
Odgovor na temu

[es] :: Pascal / Delphi / Kylix :: Snimanje podataka iz StringGrid-a u fajl?

[ Pregleda: 2950 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.