Avatar billede mysitesolution Nybegynder
20. januar 2003 - 18:08 Der er 10 kommentarer og
1 løsning

er string integer?

Er der ikke en der kan lave en funktion til mig som kan finde ud ad om en streng kan blive til integer. Altså når man laver denne strtoint(streng) hvis så strengen ikke kan laves om så kommer der en fejl meddelse
Avatar billede dj Nybegynder
20. januar 2003 - 18:15 #1
Gennemløb strengen og tjek om alle chars matcher udtrykket: MyString[I] in [0..9], hvis dette ikke er tilfældet kan du så sætte en boolean til False (som initialiseres til True i starten) tilsidst er det så bare at returnere denne boolean, så har du løst opgaven.

Det er opskriften, se om ikke du selv er istand til at følge den.

//_DJ_
Avatar billede mysitesolution Nybegynder
20. januar 2003 - 18:34 #2
prøver
Avatar billede mysitesolution Nybegynder
20. januar 2003 - 18:55 #3
lukker jeg lavede bare dette i OnKeyPress event i min edit box:

  If  (Not(Key In ['0'..'9'])) And (Key <> #8) Then
key := #0;
Avatar billede athlon-pascal Juniormester
20. januar 2003 - 19:23 #4
mysitesolution -> Prøv at kopiere denne tekst med Ctrl+C og indsætte den i din edit box med Ctrl+V.

Bagefter kan du kigge på dette:

function IsStrANumber(const S: String): Boolean;
VAR
  V,E : Integer;
begin
  Val(S,V,E);
  Result := (E = 0);
end;
Avatar billede dkn Nybegynder
20. januar 2003 - 21:01 #5
val er den rigtige løsning.

du kan også bruge try except
Avatar billede dj Nybegynder
20. januar 2003 - 21:19 #6
Der findes ikke nogen "rigtig" og "forkert" løsning. Val er den interne løsning, altså en funktion Borland har udviklet og som ligger i frameworket.
Men min løsning er mindst ligeså rigtig og tager udgangspunkt i hvordan problemet kan løses med en simpel algoritme.

Set fra et læringssynspunkt vil jeg mene min løsning er mest rigtig at give ham, da den viser hvordan problemet skal gribes an uden at være afhængig af sprog eller interne funktioner. Og er det ikke det man som programmør bør lære?

Og selvom han måske ikke lige fandt ud af at lave funktionen, lykkedes det ham dog at tænke over problemet og komme op med en fungerende løsning på problematikken. Hvilket jeg vil mene han har fået en hel del mere ud af end hvis I bare smed den generelle løsning her som athlon-pascal f.eks. har gjort.
Avatar billede hermandsen Juniormester
20. januar 2003 - 21:32 #7
>>dj
Tror nu alligevel på at det er hurtigere at bruge Val frem for et loop! ;)
Den tjekker (så vidt jeg husker) også om strengen er for lang til at blive en integer...

36712846327846328743 er f.eks. ikke en gyldig Integer! ;)
Avatar billede dj Nybegynder
21. januar 2003 - 00:44 #8
Den er formentlig mere optimeret ja, men det er vel tilladt at opfordre folk til at tænke lidt selv ? :)
Avatar billede hermandsen Juniormester
21. januar 2003 - 07:41 #9
Helt enig!!!! :)
Avatar billede dkn Nybegynder
21. januar 2003 - 14:10 #10
Man kunne jo godt regne ud at ordet rigtigt ville blive kommenteret her på exp…..
Men har da også fortrudt det, for der er jo mange måder at gøre det på, følte bare at det var den mest ”delhiske” løsning...

"Der findes ikke nogen "rigtig" og "forkert" løsning" - Jo...kan komme på meget kode som ville være forkert, og dermed ikke validere strengen :)
du kan selv prøve med evt. showmessage, den kan fx ikke validere teksten! ;)
Avatar billede dj Nybegynder
21. januar 2003 - 22:26 #11
*pfffft*
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester