/ Forside / Teknologi / Udvikling / Delphi/Pascal / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Delphi/Pascal
#NavnPoint
oldwiking 603
jrossing 525
rpje 520
EXTERMINA.. 500
gandalf 460
gubi 270
DJ_Puden 250
PARKENSS 230
technet 210
10  jdjespers.. 200
Hvordan lagres disse data bedst?
Fra : Frederiksen


Dato : 13-11-06 13:50

Problemstillingen består i første omgang i at mit kommende program
har nogle data, som skal kunne gemmes og hentes for at programmet
bliver brugbart og funktionelt.

Men at inddrage en reel database er skudt meget over målet, tror jeg.

Når programmet startes op skal man vælge en "gruppe" man skal arbejde
i/med. Det kan være en "opgave" eller "kunde" osv. det er i princippet
lige gyldigt. Men den "gruppe data" man åbner, er den man henter og
gemmer data for.
Når man har valgt en "datagruppe" så er der et hav af
indtastningsmuligheder i form af editbokse, afkrydsningsbokse,
alternativknapper, som programmet skal bearbejde.

Men hvilken metode / dataform vil i anbefale jeg bruger til dette? Er
det ikke rigtigt, at en reel database er overdrevet brug hertil?


 
 
Harald (13-11-2006)
Kommentar
Fra : Harald


Dato : 13-11-06 14:03

Nå min OE vil ikke sætte > på denne post?

Det kommer vel an på hvor mange grupper du har, har du 5 er en database
måske "for meget" men har du 1000+ så vil en DB jo være fint.
Men hvis der ikke er mange så ville jeg vælge en ini fil eller måske en
enkelt fil til hver gruppe.

Uanset om man vælger en enkelt ini til det hele eller en fil til hver så
ville jeg nok vælge formen:
Navn=Hans Andersen
Telefon=99 11 22 33

denne form gør det meget let at tilføje nye linier senere uden at skulle
ombygge datafilerne. Og Delphi har også en del komponenter det gør denne
form meget let at arbejde med, f.eks. TInifile og TStringList.

Mvh
HK


-----------------------
"Frederiksen" <msfrederiksen@ofir.dk> skrev i en meddelelse
news:1163422193.542981.287240@h48g2000cwc.googlegroups.com...
Problemstillingen består i første omgang i at mit kommende program
har nogle data, som skal kunne gemmes og hentes for at programmet
bliver brugbart og funktionelt.

Men at inddrage en reel database er skudt meget over målet, tror jeg.

Når programmet startes op skal man vælge en "gruppe" man skal arbejde
i/med. Det kan være en "opgave" eller "kunde" osv. det er i princippet
lige gyldigt. Men den "gruppe data" man åbner, er den man henter og
gemmer data for.
Når man har valgt en "datagruppe" så er der et hav af
indtastningsmuligheder i form af editbokse, afkrydsningsbokse,
alternativknapper, som programmet skal bearbejde.

Men hvilken metode / dataform vil i anbefale jeg bruger til dette? Er
det ikke rigtigt, at en reel database er overdrevet brug hertil?



Frederiksen (13-11-2006)
Kommentar
Fra : Frederiksen


Dato : 13-11-06 15:19


Harald skrev:
> Nå min OE vil ikke sætte > på denne post?
>
> Det kommer vel an på hvor mange grupper du har, har du 5 er en database
> måske "for meget" men har du 1000+ så vil en DB jo være fint.
> Men hvis der ikke er mange så ville jeg vælge en ini fil eller måske en
> enkelt fil til hver gruppe.
>
> Uanset om man vælger en enkelt ini til det hele eller en fil til hver så
> ville jeg nok vælge formen:
> Navn=Hans Andersen
> Telefon=99 11 22 33
>
> denne form gør det meget let at tilføje nye linier senere uden at skulle
> ombygge datafilerne. Og Delphi har også en del komponenter det gør denne
> form meget let at arbejde med, f.eks. TInifile og TStringList.
>
> Mvh
> HK

Hej HK og tak for dit svar. Jeg vil lige præcisere mine tal lidt.

Ja, det er måske 1, 5, 20 eller 30 datagrupper / "kunder", som der
kan vælges mellem. Når en af kunderne er valgt / åbnet, kan der
arbejdes med data for denne.

Når man har valgt / åbnet sin kundefil, så er brugerfladen
bestående af en lang række indtastningsmuligheder, som skal gemmes og
hentes til videre bearbejdning. I alt er der ca. 100 inputfelter.


Harald (13-11-2006)
Kommentar
Fra : Harald


Dato : 13-11-06 15:28

"Frederiksen" <msfrederiksen@ofir.dk> skrev i en meddelelse
news:1163427543.440712.229050@m73g2000cwd.googlegroups.com...

Harald skrev:
> Nå min OE vil ikke sætte > på denne post?
>
> Det kommer vel an på hvor mange grupper du har, har du 5 er en database
> måske "for meget" men har du 1000+ så vil en DB jo være fint.
> Men hvis der ikke er mange så ville jeg vælge en ini fil eller måske en
> enkelt fil til hver gruppe.
>
> Uanset om man vælger en enkelt ini til det hele eller en fil til hver så
> ville jeg nok vælge formen:
> Navn=Hans Andersen
> Telefon=99 11 22 33
>
> denne form gør det meget let at tilføje nye linier senere uden at skulle
> ombygge datafilerne. Og Delphi har også en del komponenter det gør denne
> form meget let at arbejde med, f.eks. TInifile og TStringList.
>
> Mvh
> HK

Hej HK og tak for dit svar. Jeg vil lige præcisere mine tal lidt.

Ja, det er måske 1, 5, 20 eller 30 datagrupper / "kunder", som der
kan vælges mellem. Når en af kunderne er valgt / åbnet, kan der
arbejdes med data for denne.

Når man har valgt / åbnet sin kundefil, så er brugerfladen
bestående af en lang række indtastningsmuligheder, som skal gemmes og
hentes til videre bearbejdning. I alt er der ca. 100 inputfelter.

------------

Så ville jeg vælge en ini fil og bruge TInifile.

/HK



Flozzy (14-11-2006)
Kommentar
Fra : Flozzy


Dato : 14-11-06 05:32

Hej Frederiksen
Måske kunne det være en idé at lave en eller flere records, og lægge dem i
et eller flere array of records (en for hver gruppe). Arrayet streames for
at gøre det nemt at gemme og hente igen.

Jeg har lavet en simpel 'passwordreminder' efter samme princip, som fungerer
fint. Uddrag af koden til evt. inspiration:

var Stream: TMemorystream;
..............
type TDataRec = record
Loc : string[24];
User: string[24];
Pass: string[16];
end;

type TDynDataArray = array of TDataRec; {Behøver ikke at være et dynamisk
array}
...............
procedure TForm1.SaveArray;
var i: integer;
begin
Stream := TMemorystream.Create;

for i := 0 to High(DataArr) do
begin
Stream.Write(DataArr[i], SizeOf(TDataRec));
end;

Stream.SaveToFile(OutFile);
Stream.Free;
end;

procedure TForm1.LoadArray;
var i, Elements: integer;
begin
Stream := TMemoryStream.Create;

Stream.LoadFromFile(InFile);
Elements := Ord(Stream.Size div SizeOf(TDataRec));
SetLength(DataArr, Elements);

for i := 0 to Elements - 1 do
begin
Stream.Read(DataArr[i], SizeOf(TDataRec));
end;

Stream.Free;
end;

Mvh. Flozzy


"Frederiksen" <msfrederiksen@ofir.dk> skrev i en meddelelse
news:1163422193.542981.287240@h48g2000cwc.googlegroups.com...
Problemstillingen består i første omgang i at mit kommende program
har nogle data, som skal kunne gemmes og hentes for at programmet
bliver brugbart og funktionelt.

Men at inddrage en reel database er skudt meget over målet, tror jeg.

Når programmet startes op skal man vælge en "gruppe" man skal arbejde
i/med. Det kan være en "opgave" eller "kunde" osv. det er i princippet
lige gyldigt. Men den "gruppe data" man åbner, er den man henter og
gemmer data for.
Når man har valgt en "datagruppe" så er der et hav af
indtastningsmuligheder i form af editbokse, afkrydsningsbokse,
alternativknapper, som programmet skal bearbejde.

Men hvilken metode / dataform vil i anbefale jeg bruger til dette? Er
det ikke rigtigt, at en reel database er overdrevet brug hertil?



Uffe Kousgaard (14-11-2006)
Kommentar
Fra : Uffe Kousgaard


Dato : 14-11-06 08:49

"Flozzy" <jje@venlig.dk> wrote in message
news:455946e3$0$935$edfadb0f@dread12.news.tele.dk...

> procedure TForm1.SaveArray;
> var i: integer;
> begin
> Stream := TMemorystream.Create;
>
> for i := 0 to High(DataArr) do
> begin
> Stream.Write(DataArr[i], SizeOf(TDataRec));
> end;
>
> Stream.SaveToFile(OutFile);
> Stream.Free;
> end;

Hvorfor anvender du ikke blot en TFileStream her? Så kan du springe ledet
med SaveToFile over og du behøver ikke have hele strukturen 2 gange i
hukommelsen. Det kunne potentielt være et problem.

hilsen
Uffe




Flozzy (14-11-2006)
Kommentar
Fra : Flozzy


Dato : 14-11-06 10:53

Hej Uffe

> Hvorfor anvender du ikke blot en TFileStream her? Så kan du springe ledet
> med SaveToFile over og du behøver ikke have hele strukturen 2 gange i
> hukommelsen. Det kunne potentielt være et problem.
>
> hilsen
> Uffe

Jo, det overvejede jeg også dengang - nu er jeg da også begyndt (med fordel)
at bruge TFileStream igen.
Grunden var dengang, at jeg ville lære så meget som muligt om TStream
klasserne, og startede så med TMemoryStrem, som jeg også bruger til andre
formål. Eksemplet var nærmest kun ment som inspiration. .

Mvh. Flozzy



Frederiksen (20-11-2006)
Kommentar
Fra : Frederiksen


Dato : 20-11-06 08:51

Flozzy skrev:
> Hej Uffe
>
> > Hvorfor anvender du ikke blot en TFileStream her? Så kan du springe ledet
> > med SaveToFile over og du behøver ikke have hele strukturen 2 gange i
> > hukommelsen. Det kunne potentielt være et problem.
> >
> > hilsen
> > Uffe
>
> Jo, det overvejede jeg også dengang - nu er jeg da også begyndt (med fordel)
> at bruge TFileStream igen.
> Grunden var dengang, at jeg ville lære så meget som muligt om TStream
> klasserne, og startede så med TMemoryStrem, som jeg også bruger til andre
> formål. Eksemplet var nærmest kun ment som inspiration. .
>
> Mvh. Flozzy

Hej Flozzy, Uffe mfl.

For det første vi vil jeg nysgerrigt spørge, hvad Flozzys eksempel og
TFileStream egentlig "gør" ved hele molevitten.

Dernæst vil jeg gerne tilluske mig viden om, hvordan jeg får gemt /
hentet data til og fra mine editbokse og andre kontroller, da jeg
indtil videre kun har arbejdet med de databasestyrede editbokse, når
der skal hentes og gemmes data.


Flozzy (21-11-2006)
Kommentar
Fra : Flozzy


Dato : 21-11-06 11:44


Hej Flozzy, Uffe mfl.

For det første vi vil jeg nysgerrigt spørge, hvad Flozzys eksempel og
TFileStream egentlig "gør" ved hele molevitten.

Dernæst vil jeg gerne tilluske mig viden om, hvordan jeg får gemt /
hentet data til og fra mine editbokse og andre kontroller, da jeg
indtil videre kun har arbejdet med de databasestyrede editbokse, når
der skal hentes og gemmes data.

Hej Frederiksen

I mit eksempel brugte jeg streamen til at gemme og hente det, jeg havde
lagret i mit array (of record).

Mit array blev fyldt sådan (efter hukommelsen):

type TDataRec = record
Loc : string[24];
User: string[24];
Pass: string[16];
end;

type TDynArray = array of TDataRec;

var MyRec: TDataRec;
MyArr: TDynArray;

MyRec.Loc := Edit1.Text;
MyRec.User := Edit2.Text;
MyRec.Pass := Edit3.Text;

MyArr[0] := MyRec;

og videre til næste, altså MyArr[1]...osv. Derefter gemmer/henter jeg hele
arrayet vha. streamen.

Håber det fremmer forståelsen. Jeg kan kun varmt anbefale dig, hvis du har
tid, at eksperimentere dig lidt frem.

Mvh. Flozzy



Ukendt (22-11-2006)
Kommentar
Fra : Ukendt


Dato : 22-11-06 16:31

Jeg har et lignende problem med et gammel projekt, som jeg godt vil have
lidt gang i igen.

Jeg var / er i gang med at lave et skatteberegningsprogram. I sin tid (for
ca. et år tilbage), da jeg startede på programmet, gemte jeg dataene i en
alm. paradox database med de problemer, der nu følger med.

Nu vil jeg gerne igang med programmet igen efter en lang sommerpause og
tænkte på, om der er en anden måde, som var nemmere / bedre til formålet
hvad angår at gemme dataene på. Fx den omtalte måde der blev foreslået
Frederiksen.

Jeg har lavet 3 screenshots af 3 tilfældige forms i programmet, så man kan
se nogle eksempler på de data, der skal gemmes.

De findes her:

http://www.test.horsensfreja.dk/pi.jpg

http://www.test.horsensfreja.dk/ki.jpg

http://www.test.horsensfreja.dk/stamdata.jpg

Der findes lignende forms for andre indkomst/fradragstyper.

Vil i foreslå, at jeg fortsætter med en databaseløsning eller en anden
løsning (hvilken?)

På forhånd tak / de bedste hilsener
Michael Sørensen
8700 Horsens



Harald (22-11-2006)
Kommentar
Fra : Harald


Dato : 22-11-06 17:57

"Michael Sørensen" <.> skrev i en meddelelse
news:45646d21$0$4156$ba624c82@nntp02.dk.telia.net...
> Jeg har et lignende problem med et gammel projekt, som jeg godt vil have
> lidt gang i igen.
>
> Jeg var / er i gang med at lave et skatteberegningsprogram. I sin tid (for
> ca. et år tilbage), da jeg startede på programmet, gemte jeg dataene i en
> alm. paradox database med de problemer, der nu følger med.
>
> Nu vil jeg gerne igang med programmet igen efter en lang sommerpause og
> tænkte på, om der er en anden måde, som var nemmere / bedre til formålet
> hvad angår at gemme dataene på. Fx den omtalte måde der blev foreslået
> Frederiksen.
>
> Jeg har lavet 3 screenshots af 3 tilfældige forms i programmet, så man kan
> se nogle eksempler på de data, der skal gemmes.
>
> De findes her:
>
> http://www.test.horsensfreja.dk/pi.jpg
>
> http://www.test.horsensfreja.dk/ki.jpg
>
> http://www.test.horsensfreja.dk/stamdata.jpg
>
> Der findes lignende forms for andre indkomst/fradragstyper.
>
> Vil i foreslå, at jeg fortsætter med en databaseløsning eller en anden
> løsning (hvilken?)

Jeg vil igen nævne ini filer, jeg er helt tosse med ini filer til data i
begrænset mængder jeg bruger det i alle mine programmer da de er utrolige
lette at benytte og senere udvide med flere data. Men nu har jeg aldrig
arbejdet med stream så det kan jeg ikke sammenligne med.

/HK



Thor (07-12-2006)
Kommentar
Fra : Thor


Dato : 07-12-06 15:25

Hej Michael

Du må ikke lade dig skræmme af Paradox, -
det er noget hø, men det er databaser ikke generelt.
Databaser er helt klart vejen frem, - også til helt små systemer.
Jeg bruger selv Interbase/Firebird og MS SQL Express edition, de findes

begge i gratisversioner, som er lige til at hente ned og bruge.

mvh Thomas

Michael Sørensen skrev:
> Jeg har et lignende problem med et gammel projekt, som jeg godt vil have
> lidt gang i igen.
>
> Jeg var / er i gang med at lave et skatteberegningsprogram. I sin tid (for
> ca. et år tilbage), da jeg startede på programmet, gemte jeg dataene i en
> alm. paradox database med de problemer, der nu følger med.
>
> Nu vil jeg gerne igang med programmet igen efter en lang sommerpause og
> tænkte på, om der er en anden måde, som var nemmere / bedre til formålet
> hvad angår at gemme dataene på. Fx den omtalte måde der blev foreslået
> Frederiksen.
>
> Jeg har lavet 3 screenshots af 3 tilfældige forms i programmet, så man kan
> se nogle eksempler på de data, der skal gemmes.
>
> De findes her:
>
> http://www.test.horsensfreja.dk/pi.jpg
>
> http://www.test.horsensfreja.dk/ki.jpg
>
> http://www.test.horsensfreja.dk/stamdata.jpg
>
> Der findes lignende forms for andre indkomst/fradragstyper.
>
> Vil i foreslå, at jeg fortsætter med en databaseløsning eller en anden
> løsning (hvilken?)
>
> På forhånd tak / de bedste hilsener
> Michael Sørensen
> 8700 Horsens


Ukendt (07-02-2007)
Kommentar
Fra : Ukendt


Dato : 07-02-07 19:34

"Thor" <dur.ikke@gmail.com> skrev i en meddelelse
news:1165501488.539737.232210@l12g2000cwl.googlegroups.com...
> Hej Michael

Hej Thomas

> Du må ikke lade dig skræmme af Paradox, -
> det er noget hø, men det er databaser ikke generelt.
> Databaser er helt klart vejen frem, - også til helt små systemer.
> Jeg bruger selv Interbase/Firebird og MS SQL Express edition, de findes

> mvh Thomas

Nu har jeg så taget dit råd med på vejen og installeret Firebird, som blev
mit valg.

Men jeg har lidt problemer med at bruge det.

Jeg har oprettet en database og et par tabeller, mine problemer opstår i
Delphi.

Jeg har puttet et par InterBase komponenter på mit datamodul
- TIBDatabase
TIBTransaction

og disse er rigtigt indstillet (tror jeg nok).

Så langt så godt.

Jeg vil gerne bruge SQL (jeg har fint kendskab til SQL-sproget, problemet er
stadigvæk at få det bundet sammen med Delphi).

Jeg har en DBGrid på en form. Det er nødvendigt / vigtigt for mig, at den
ikke er "read only" dvs. jeg skal kunne redigere i min tabel via min DBGrid
direkte.

Hvilke componenter mangler jeg og hvilken kode vil du anbefale, hvis jeg
skal have mulighed for eksempelvis at indsætte en linie eller fx rette
indholdet jvf. ovenstående ?



Søg
Reklame
Statistik
Spørgsmål : 177558
Tips : 31968
Nyheder : 719565
Indlæg : 6408914
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste