Case med strings

Tags:    delphi

Fold kodeboks ind/udKode 

Det eksempel kan ikke lade sig gøre fordi jeg bruger strings i en case-sætning. Men hvordan kan jeg få det til at virke??





-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------

[Redigeret d. 29/06-04 11:27:18 af Jonas (Decko)]



7 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 4 karma
Sorter efter stemmer Sorter efter dato

Fold kodeboks ind/udKode 

Det eksempel kan ikke lade sig gøre fordi jeg bruger strings i en case-sætning. Men hvordan kan jeg få det til at virke??


Du kan ikke lave en case sætning med strings. Grunden er at Delphi kun tillader ordinale typer (f.eks. integer, boolean etc.) i case sætninger.

Den eneste måde du kan gøre det på er if..else sætninger. Dit eksempel omskrevet ville være:

Fold kodeboks ind/udKode 


Hvis du vil have sammenligningen Case Insensitiv, ellers kan du nøjes med dette:

Fold kodeboks ind/udKode 


--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk

[Redigeret d. 29/06-04 12:23:53 af Thomas Due]



Altså.
Jeg har en ide. Men altså. Den er nok ikke sådan professonel:

Du kan vel bare smide stingens text ned i en label. Eller lade den blive i edit1.text. Eks.:


Fold kodeboks ind/udKode 



Har ikke prøvet den. Så du skal måske rette lidt i mit eks.




-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------

[Redigeret d. 29/06-04 11:27:18 af Jonas (Decko)]
Shafh
Shafh@stofanet.dk
Theis F. Hinz

En professionel er en person, som kan gøre sit bedste på tidspunkter,hvor han ikke ligefrem føler for det.



Ok tak Thomas. Giver altså ik points til dig Shafh da TCaption også er en string ville det ikke virke!











-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------



Ok. Der kan man bare se :D
Jamen. Ellers kan du da også bare skrive det med edit1 eller lignende.

Hva skal det bruges til? Noget i GEX?




Shafh
Shafh@stofanet.dk
Theis F. Hinz

En professionel er en person, som kan gøre sit bedste på tidspunkter,hvor han ikke ligefrem føler for det.



Nej til et program jeg arbejder på. Alt efter hvilken kommando programmer får skal der gøre noget.















-------------------------------------------------------
Jonas (Decko)
http://www.growyourownshit.com/users/Decko
-------------------------------------------------------



Hvis det skal have flere kommandoer ville jeg nok overveje at køre det i et array eller for du monster mange if sætninger.

Teori:

For I:=0 to KommandoArray.Length do
begin
if IndKomando=KommandoArray[I] then
begin
showmessage(IndKommando);
end;
end;
-----------------------------------------------------------------------------

Min side ->www.the-hive.dk/~donp/




For I:=0 to KommandoArray.Length do
begin
if IndKomando=KommandoArray[I] then
begin
showmessage(IndKommando);
end;
end;


I princippet en rigtig dårlig ide. Grunden til det er at du kommer til at cyckle igennem hele listen HVER gang. Hvis du har RIGTIG mange kommandoer kan det altså gå hen og tage rigtig lang tid. Men med lidt modification kan det grundlæggende bruges:

Fold kodeboks ind/udKode 


Så bryder den løkken lige så snart den har fundet kommandoen der matcher. Hvis det så er den sidst kommando kommen den selvfølgelig til at løbe igennem HELE arrayet, til gengæld skal det ikke være sorteret.

--
Thomas Due
Software developer
udvikleren.dk - ASP redaktør
tdue@mail.dk



t