/ 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 laves denne sammenhæng
Fra : Ukendt


Dato : 13-01-06 17:41

hej

hvis jeg har nogle data (jeg ved ikke, om det vil være nemmest at lave i et
excelark, hvor dataene ligger nu, eller om de skal laves til en text-file,
database eller andet) hvor et entydigt nummer passer til en tekst og jeg
ønsker en sammenhæng mellem disse i to combobokse, hvordan kan jeg gøre det?

dvs valget af nummeret i combobox 1 skal reflektere teksten, der svarer til
nummeret i combobox 2 - og omvendt.

teknisk beskrivelse eller kode stump vil være ønskværdigt samt forslag til
om det gøres bedst i text-file, Excel (cvs) eller database.

Det drejer sig mellem 100 og 200 stk. data, der er statiske (de opdateres
kun med måske et års mellemrum)



 
 
Hans (13-01-2006)
Kommentar
Fra : Hans


Dato : 13-01-06 18:20

"Museumsmedarbejderen" <.> skrev i en meddelelse
news:43c7d816$0$8100$ba624c82@nntp02.dk.telia.net...
> hej
>
> hvis jeg har nogle data (jeg ved ikke, om det vil være nemmest at lave i
> et excelark, hvor dataene ligger nu, eller om de skal laves til en
> text-file, database eller andet) hvor et entydigt nummer passer til en
> tekst og jeg ønsker en sammenhæng mellem disse i to combobokse, hvordan
> kan jeg gøre det?
>
> dvs valget af nummeret i combobox 1 skal reflektere teksten, der svarer
> til nummeret i combobox 2 - og omvendt.
>
> teknisk beskrivelse eller kode stump vil være ønskværdigt samt forslag til
> om det gøres bedst i text-file, Excel (cvs) eller database.
>
> Det drejer sig mellem 100 og 200 stk. data, der er statiske (de opdateres
> kun med måske et års mellemrum)

Database er nok overdrevet til så få data, jeg vil anbefale en ini/txt fil:

[Tekster]
1=En tekst
2=Anden tekst
3=Lala
osv.

Så kan du bruge TInifile til at hente/sætte data.

/HK



Ukendt (13-01-2006)
Kommentar
Fra : Ukendt


Dato : 13-01-06 19:09

"Hans" <nomail@noname.dk> skrev i en meddelelse
news:43c7e135$0$84034$edfadb0f@dtext01.news.tele.dk...
> "Museumsmedarbejderen" <.> skrev i en meddelelse
> news:43c7d816$0$8100$ba624c82@nntp02.dk.telia.net...
>> hej
>>
>> hvis jeg har nogle data (jeg ved ikke, om det vil være nemmest at lave i
>> et excelark, hvor dataene ligger nu, eller om de skal laves til en
>> text-file, database eller andet) hvor et entydigt nummer passer til en
>> tekst og jeg ønsker en sammenhæng mellem disse i to combobokse, hvordan
>> kan jeg gøre det?
>>
>> dvs valget af nummeret i combobox 1 skal reflektere teksten, der svarer
>> til nummeret i combobox 2 - og omvendt.
>>
>> teknisk beskrivelse eller kode stump vil være ønskværdigt samt forslag
>> til om det gøres bedst i text-file, Excel (cvs) eller database.
>>
>> Det drejer sig mellem 100 og 200 stk. data, der er statiske (de opdateres
>> kun med måske et års mellemrum)
>
> Database er nok overdrevet til så få data, jeg vil anbefale en ini/txt
> fil:

Hvad er en ini-fil for en størrelse. Jeg har hørt navnet før i forbindelse
med Windows mener jeg, men hvad er det?

> [Tekster]
> 1=En tekst
> 2=Anden tekst
> 3=Lala
> osv.
>
> Så kan du bruge TInifile til at hente/sætte data.

Men hvordan laves sammenhængen?



Michael Haase (13-01-2006)
Kommentar
Fra : Michael Haase


Dato : 13-01-06 20:52

Museumsmedarbejderen skrev dette den 13-01-2006 19:08:

>
> Hvad er en ini-fil for en størrelse. Jeg har hørt navnet før i forbindelse
> med Windows mener jeg, men hvad er det?
>
Det er en "initialiserings"-fil hvor man f.eks kan gemme programmets
indstillinger eller highscore-lister hvis det er et spil.
>
>>[Tekster]
>>1=En tekst
>>2=Anden tekst
>>3=Lala
>>osv.
>>
>>Så kan du bruge TInifile til at hente/sætte data.
>
>
> Men hvordan laves sammenhængen?
>
Det er sammenhængen der står. Lad os sige det er en liste over
personalet og deres nummeret på deres kontor, så kunne den sektion af
inifilen så således ud:

[Kontornummer]
Anders Andersen = 110
Bente Bentsen = 232
Carl Clausen = 113
osv

Hans (14-01-2006)
Kommentar
Fra : Hans


Dato : 14-01-06 08:48

"Museumsmedarbejderen" <Industrimuseet> skrev i en meddelelse
news:43c7eca2$0$7637$ba624c82@nntp02.dk.telia.net...
> "Hans" <nomail@noname.dk> skrev i en meddelelse
> news:43c7e135$0$84034$edfadb0f@dtext01.news.tele.dk...
>> "Museumsmedarbejderen" <.> skrev i en meddelelse
>> news:43c7d816$0$8100$ba624c82@nntp02.dk.telia.net...
>>> hej
>>>
>>> hvis jeg har nogle data (jeg ved ikke, om det vil være nemmest at lave i
>>> et excelark, hvor dataene ligger nu, eller om de skal laves til en
>>> text-file, database eller andet) hvor et entydigt nummer passer til en
>>> tekst og jeg ønsker en sammenhæng mellem disse i to combobokse, hvordan
>>> kan jeg gøre det?
>>>
>>> dvs valget af nummeret i combobox 1 skal reflektere teksten, der svarer
>>> til nummeret i combobox 2 - og omvendt.
>>>
>>> teknisk beskrivelse eller kode stump vil være ønskværdigt samt forslag
>>> til om det gøres bedst i text-file, Excel (cvs) eller database.
>>>
>>> Det drejer sig mellem 100 og 200 stk. data, der er statiske (de
>>> opdateres kun med måske et års mellemrum)
>>
>> Database er nok overdrevet til så få data, jeg vil anbefale en ini/txt
>> fil:
>
> Hvad er en ini-fil for en størrelse. Jeg har hørt navnet før i forbindelse
> med Windows mener jeg, men hvad er det?

http://www.udvikleren.dk/article.php?aid=95

/HK



Ukendt (13-01-2006)
Kommentar
Fra : Ukendt


Dato : 13-01-06 20:07

Hej Hans

"Hans" <nomail@noname.dk> skrev i en meddelelse
news:43c7e135$0$84034$edfadb0f@dtext01.news.tele.dk...
> "Museumsmedarbejderen" <.> skrev i en meddelelse
> news:43c7d816$0$8100$ba624c82@nntp02.dk.telia.net...
>> hej
>>
>> hvis jeg har nogle data (jeg ved ikke, om det vil være nemmest at lave i
>> et excelark, hvor dataene ligger nu, eller om de skal laves til en
>> text-file, database eller andet) hvor et entydigt nummer passer til en
>> tekst og jeg ønsker en sammenhæng mellem disse i to combobokse, hvordan
>> kan jeg gøre det?
>>
>> dvs valget af nummeret i combobox 1 skal reflektere teksten, der svarer
>> til nummeret i combobox 2 - og omvendt.
>>
>> teknisk beskrivelse eller kode stump vil være ønskværdigt samt forslag
>> til om det gøres bedst i text-file, Excel (cvs) eller database.
>>
>> Det drejer sig mellem 100 og 200 stk. data, der er statiske (de opdateres
>> kun med måske et års mellemrum)
>
> Database er nok overdrevet til så få data, jeg vil anbefale en ini/txt
> fil:
>
> [Tekster]
> 1=En tekst
> 2=Anden tekst
> 3=Lala
> osv.
>
> Så kan du bruge TInifile til at hente/sætte data.

Jeg har to problemer (eller opgaver, det lyder bedre), som minder meget om
ovenstående. Vil du anbefale mig at bruge samme metode?

Det drejer sig om postnr/by (som sikkert er en opgave, der ofte stødes på,
da det er et centralt emne) hhv. skattekommune og dens skattesatser.

Begge dele har jeg til at ligge i Excel-filer, men post.nr. og by har jeg
ligeledes til at ligge i en Access database.

Jeg beksriver lige begge dele lidt mere detaljeret.

*** Post-nr. / by problematikken ***
I øjeblikket ligger alle postnr. i en Access fil eller et Excel regneark -
dvs. kolonner med postnr. hhv. bynavn.
Disse vil jeg gerne have integreret i et Delphi program (jeg bruger Delphi
6).
Jeg havde forestillet mig noget lignende, at jeg havde en editboks evt. med
et rullepanel hvor man kan vælge sit postnr. og så skriver den automatisk
det bynavn, der matcher postnummeret i en anden tekstboks.

Vil du også anbefale mig at putte mine data over og lave det i en inifil?

*** Skattekommune og satser ***
Jeg har ligeledes en Excel fil med flg. kolonner
Kommunenr., Kommunenavn, amtskommune, kommuneskat, amtsskat, kirkeskat samt
nedslag i procent.
Her har jeg behov for, at have samtlige kommunenavne i tekstboks med
rullepanel, hvor man kan vælge sin kommune og ud fra hvilken kommune man har
valgt, skal jeg bruge værdierne ud for denne kommune i nogle variabler.
Fx hvis Horsens er valgt, skal jeg have gemt Horsens' kommunenummer,
skatteprocent, amtsskatteprocent osv. i tilhørende variabler.

Hvordan vil du foreslå dette grebet an?

Jeg vil utrolig gerne, hvis du kunne give lidt uddybende svar, da jeg ikke
evner at lave løsningen ud fra blot et par forslag. Jeg _vil meget gerne_
lave det selv, men skal bare hjælpes godt i gang.

/Michael Sørensen, 24
8700 Horsens




Michael Haase (13-01-2006)
Kommentar
Fra : Michael Haase


Dato : 13-01-06 21:07

Michael Sørensen skrev dette den 13-01-2006 20:07:

> Jeg har to problemer (eller opgaver, det lyder bedre), som minder meget om
> ovenstående. Vil du anbefale mig at bruge samme metode?
>
Da det er begrænsede mængder data kan jeg ikke se noget problem. Desuden
vil der så heller ikke være problemet om man kan bruge databaser i den
delphi version.

> Jeg havde forestillet mig noget lignende, at jeg havde en editboks evt. med
> et rullepanel hvor man kan vælge sit postnr. og så skriver den automatisk
> det bynavn, der matcher postnummeret i en anden tekstboks.
>
> Vil du også anbefale mig at putte mine data over og lave det i en inifil?
>
Jeg har rent faktisk lavet noget lignende, hvor man desuden også kan
vælge byen, og så bliver postnummeret automatisk udfyldt. Der har brugt
en ren tekstfil, men jeg kunne også have brugt en inifil.


> *** Skattekommune og satser ***
> Jeg har ligeledes en Excel fil med flg. kolonner
> Kommunenr., Kommunenavn, amtskommune, kommuneskat, amtsskat, kirkeskat samt
> nedslag i procent.
> Her har jeg behov for, at have samtlige kommunenavne i tekstboks med
> rullepanel, hvor man kan vælge sin kommune og ud fra hvilken kommune man har
> valgt, skal jeg bruge værdierne ud for denne kommune i nogle variabler.
> Fx hvis Horsens er valgt, skal jeg have gemt Horsens' kommunenummer,
> skatteprocent, amtsskatteprocent osv. i tilhørende variabler.
>
> Hvordan vil du foreslå dette grebet an?

Her kunne du i din inifil have sektioner med kommumnernes navne og key
med de forskellige værdier, altså f.eks:

[Horsens]
Kommunenr=xxx
Amtskommune=Århus Amt (eller hvad det nu er)
Kommuneskat = 22
Amtsskat = 33
Kirkeskat = 0.9
Nedslag = 1
>
> Jeg vil utrolig gerne, hvis du kunne give lidt uddybende svar, da jeg ikke
> evner at lave løsningen ud fra blot et par forslag. Jeg _vil meget gerne_
> lave det selv, men skal bare hjælpes godt i gang.
>

Hvis du så vælger Horsens i listen indlæser du værdierne med f.eks.

komskat:=TINIFile.ReadFloat (const 'Horsens', 'Kommuneskat',
[defaultværdi hvis værdien ikke kan findes]];


--
Michael Haase

Ukendt (13-01-2006)
Kommentar
Fra : Ukendt


Dato : 13-01-06 22:02

"Michael Haase" <micvans@netscape.invalid> skrev i en meddelelse
news:7085b$43c80879$3e3d8433$9056@news.arrownet.dk...
> Michael Sørensen skrev dette den 13-01-2006 20:07:
>
>> Jeg har to problemer (eller opgaver, det lyder bedre), som minder meget
>> om ovenstående. Vil du anbefale mig at bruge samme metode?
>>
> Da det er begrænsede mængder data kan jeg ikke se noget problem. Desuden
> vil der så heller ikke være problemet om man kan bruge databaser i den
> delphi version.
>
>> Jeg havde forestillet mig noget lignende, at jeg havde en editboks evt.
>> med et rullepanel hvor man kan vælge sit postnr. og så skriver den
>> automatisk det bynavn, der matcher postnummeret i en anden tekstboks.
>>
>> Vil du også anbefale mig at putte mine data over og lave det i en inifil?
>>
> Jeg har rent faktisk lavet noget lignende, hvor man desuden også kan vælge
> byen, og så bliver postnummeret automatisk udfyldt. Der har brugt en ren
> tekstfil, men jeg kunne også have brugt en inifil.

Hej Michael. Er det lavet som en kommasepereret textfile?

Vil du evt. dele din kode?

>> *** Skattekommune og satser ***
>> Jeg har ligeledes en Excel fil med flg. kolonner
>> Kommunenr., Kommunenavn, amtskommune, kommuneskat, amtsskat, kirkeskat
>> samt nedslag i procent.
>> Her har jeg behov for, at have samtlige kommunenavne i tekstboks med
>> rullepanel, hvor man kan vælge sin kommune og ud fra hvilken kommune man
>> har valgt, skal jeg bruge værdierne ud for denne kommune i nogle
>> variabler.
>> Fx hvis Horsens er valgt, skal jeg have gemt Horsens' kommunenummer,
>> skatteprocent, amtsskatteprocent osv. i tilhørende variabler.
>>
>> Hvordan vil du foreslå dette grebet an?
>
> Her kunne du i din inifil have sektioner med kommumnernes navne og key med
> de forskellige værdier, altså f.eks:
>
> [Horsens]
> Kommunenr=xxx
> Amtskommune=Århus Amt (eller hvad det nu er)
> Kommuneskat = 22
> Amtsskat = 33
> Kirkeskat = 0.9
> Nedslag = 1
>>
>> Jeg vil utrolig gerne, hvis du kunne give lidt uddybende svar, da jeg
>> ikke evner at lave løsningen ud fra blot et par forslag. Jeg _vil meget
>> gerne_ lave det selv, men skal bare hjælpes godt i gang.
>>
>
> Hvis du så vælger Horsens i listen indlæser du værdierne med f.eks.
>
> komskat:=TINIFile.ReadFloat (const 'Horsens', 'Kommuneskat',
> [defaultværdi hvis værdien ikke kan findes]];

Jeg kan godt se ideen, men ville helst have undgået det, hvis det kunne lade
sig gøre, idet jeg har dataene i et Excel regneark og det vil kræve meget at
få det konverteret til en ini-fil.



Michael Haase (14-01-2006)
Kommentar
Fra : Michael Haase


Dato : 14-01-06 00:18

Michael Sørensen skrev dette den 13-01-2006 22:01:

>
>
> Hej Michael. Er det lavet som en kommasepereret textfile?

Nej som ganske almindelig mellemrumssepareret Danske postnumre
består jo kun af cifre, så filen er bare opbygget som

5320 Agedrup
6753 Agerbæk
6534 Agerskov
2620 Albertslund
3450 Allerød

>
> Vil du evt. dele din kode?
>
Jeg har prøvet at tage det vigtigste, så du forhåbentlig kan fange idéen
i det. Hvis det er helt sort så sig endelig til. Vær dog lige opmærksom
på at det er en del tid siden jeg har skrevet det, og er ikke kommet så
meget længere. Det kan med garanti laves på en smartere måde.

[BEGIN CODE]
(*CBCity = TComboBox*)
(*EDZip = TEdit*)

Var
zipcode : array[1..Max_Number_of_Cities] of integer;
Zipcity : array[1..Max_Number_of_Cities] of string;

procedure TFormAdressBook.FormCreate(Sender: TObject);
var
zipFile : textFile;

begin
assignFile(zipfile,'zip.db');
reset(Zipfile);
i:=1;
while not eof(Zipfile) do
begin
read(zipfile,zipcode[i]);         (*Indlæs postnr*)
readln(zipfile,zipcity[i]); (*Indlæs By*)
copy(zipcity[i],1,length(zipcity[i])-1); (*Fjern mellemrummet*)
                  (*Tilføj By i combobox*)
CBCity.Items.Add(copy(zipcity[i],2,length(zipcity[i])-1));
inc(i);
end;
closefile(zipfile);
end;

procedure TFormAdressBook.EdZipCodeExit(Sender: TObject);
begin
i:=1;
try
While EdZipcode.text<>inttostr(zipcode[i]) do (*Find Postnr i listen*)
begin
inc(i);
end;
CBCIty.Text:=CBCity.Items[i-1];       (*Udfyld Byen*)
EdCountry.SetFocus;
except
showmessage('Ikke gyldigt dansk postnummer');
EdZipCode.text:='';
EdZipCode.SetFocus;
end;
end;

procedure TFormAdressBook.CBCityExit(Sender: TObject);
begin
EdZipCode.Text:=inttostr(Zipcode[CBCity.itemindex+1]); (*Udfyld Postnr*)
EdZipCode.Color:=clWindow;
end;

[END CODE]

>
> Jeg kan godt se ideen, men ville helst have undgået det, hvis det kunne lade
> sig gøre, idet jeg har dataene i et Excel regneark og det vil kræve meget at
> få det konverteret til en ini-fil.
>

Hvis dit regneark er bygget om således

Kommune    Kommunenr    Amtskommune    Kommuneskat osv osv
Agerup      110      xxx
Albertslund   217      Københavns Amt
Allinge      97      Bornholms Amt
osv

kan du gemme det som en kommasepareret fil. Når du så skal indlæse
værdierne, kan du:
   1) læse en linje
   2) Find positionen af første komma
   3) Lave en COPY-function, så du kun får kommunen
   4) Se om det er den valgte kommune, og gentage fra 1) hvis det
    ikke er
   5) Kommunen er fundet, find de andre kommaer
   6) Lav de passende COPY-funktioner

Så burde det også kunne klare det.

--
Michael Haase

Hans (14-01-2006)
Kommentar
Fra : Hans


Dato : 14-01-06 09:13

"Michael Haase" <micvans@netscape.invalid> skrev i en meddelelse
news:5d661$43c8352a$3e3d8433$30298@news.arrownet.dk...
> Michael Sørensen skrev dette den 13-01-2006 22:01:
>
>>
>>
>> Hej Michael. Er det lavet som en kommasepereret textfile?
>
> Nej som ganske almindelig mellemrumssepareret Danske postnumre består
> jo kun af cifre, så filen er bare opbygget som
>
> 5320 Agedrup
> 6753 Agerbæk
> 6534 Agerskov
> 2620 Albertslund
> 3450 Allerød
>
>>
>> Vil du evt. dele din kode?
>>
> Jeg har prøvet at tage det vigtigste, så du forhåbentlig kan fange idéen i
> det. Hvis det er helt sort så sig endelig til. Vær dog lige opmærksom på
> at det er en del tid siden jeg har skrevet det, og er ikke kommet så meget
> længere. Det kan med garanti laves på en smartere måde.

Nu har jeg ikke nærlæst din kode (har ikke sovet hele natten :) ) men var
det ikke betydelig lettere at benytte en TStringList, så kunne det hele
gøres i 3 linier f.eks.: (utestet)

var
ByerOgPost : TStringList;
..
..
procedure TFormAdressBook.FormCreate(Sender: TObject);
begin
ByerOgPost:=TStringList.Create;
ByerOgPost.ReadFromFile('zip.db');
end;

for at hente et bynavn bruger man så:
Bynavn:=ByerOgPost.Values['7470']; // bynavn har nu værdien Karup

/HK



Søg
Reklame
Statistik
Spørgsmål : 177459
Tips : 31962
Nyheder : 719565
Indlæg : 6408176
Brugere : 218881

Månedens bedste
Årets bedste
Sidste års bedste