Hos Computerworld it-jobbank er vi stolte af at fortsætte det gode partnerskab med folkene bag IT-DAY – efter vores mening Danmarks bedste karrieremesse for unge og erfarne it-kandidater.
Et TClientDataSet er en god løsning, men fordrer man bruger XML - og du vil jo gerne holde det simpelt. Den simpleste løsning er nok at bruge TStringLists med eksempelvis semikolon som separator. Hvis du kigger på komponenten så har den muligheden for at reagere på " og ; for hhv. strenge og feltadskildelse.
Derfor kan du nok brygge noget lignende sammen der vil kunne virke:
var i, j : integer; Lines : TStringList; Fields : TStringList; Navn, Adresse ... : string; begin Lines := TStringList.Create; Fields := TStringList.Create; try Fields.QuoteChar := '"'; Fields.Delimitor := ';';
Lines.LoadFromFile('data.txt'); for i := 0 to Lines.Count - 1 do begin Fields.CommaText := Lines[i]; Fields.DelimitedText := Lines[i]; // eller denne ?? for j := 0 to Fields.Count - 1 do case j of 0 : Navn := Fields[j]; 1 : Adresse := Fields[j] ... end;
// Lav et eller andet smart her med de data der var på linjen. end; finally Fields.Free; Lines.Free; end; end;
Jeg vil meget gerne bruge XML. Det er egentlig kun et plus, hvis jeg kan få lidt hjælp til XML-løsningen i stedet for.
Det med at holde det simpelt, det er mere således, at jeg gerne vil undgå at skulle installere noget database-halløj eller BDE osv for at få det til at fungere.
Jeg har aldrig forstået, hvorfor folk er så vilde med at bruge databaser i simple applikationer, hvor en StringList kan gøre arbejdet ganske overskueligt.
Jeg elsker at bruge simple metoder, hvor man virkelig ved, hvad der sker, f.eks.:
Som du nok har regnet ud, genererer linien SL.SaveToFile(Edit1.Text + '\' + Edit9.Text + '-' + Edit4.Text + '.csv'); en kommasepareret fil, som enhver computer med Excel, Notepad ol. kan åbne.
Send filen til din ven i Indien, og han kan med et doppeltklik lige tjekke, hvilke medlemmer I har i jeres klub!
Derudover bliver du med garanti fri for at stille spørgsmål som: "jeg får fejlen "cannot connect to ADO"" osv. her på Eksperten...
Fordi det er meget hurtige at lave kode til, og fordi der er en DBGrid ovs. du så kan bruge.
Du smidder et TClientDateSet på din form Opretter det felter du har brugfor og skriver MyDataset.SaveToFile('MyData.xml',<xml>); kan ikke lige huske hvad XML-typen hedder nr. 2 parameter, men det kan du se i hjælpen 10000 gange hurtigere og "fiksere", det der med at opfinde den dybe, hver gang det er lidt for indeffektivt :)
TClientDataSet er en god løsning. Et alternativ er at lave et XML-skema og køre den gennem "XML data binding" i Delphi. Herved autogenereres en unit til XML-data, der lige præcis opfylder skemaet du har fodret den med. Det er rigtigt smart. Skemaet kan du lave med XmlSpy's home edition.
I D2006) er metoden <ctrl-alt-p> for at vise "tool palette" , tryk F12 for at skifte til pascal-koden. Nu skulle du se gruppen "Delphi Projects | XML". Tryk på knappen og eksperten starter.
Men jeg får fejl om, at der ikke er nogen tilhørende dataprovider.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.