/ 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
Strenge i Delphi
Fra : ~*~ Mivi ~*~


Dato : 14-12-00 09:13

Hej

Jeg sidder lige nu og har et skide irriterrende problem.

Jeg har lavet en procedure i Delphi, som ser ud som følger:


Procedure SletBlanke (VAR S : String);


Når jeg kalder denne procedure, fører jeg en vilkårlig streng over til
denne.
Det kan f.eks. være en variabel af typen STRING[10].

Nu siger compileren til mig, at det kan jeg ikke da de ikke er af type.

I Turbo Pascal 7.0 til MS-DOS kan man slå et compiler directiv fra [{$V-}],
som slår dette check fra.

Det har jeg prøvet i delphi, men det hjalp ikke !!

Jeg har ligeledes prøve at fjerne STRICT VAR_CHECK under Project, Options,
Compiler.
Ingen effekt.

Gør jeg noget forkert ??

Michael




 
 
Bjørn Johansen (16-12-2000)
Kommentar
Fra : Bjørn Johansen


Dato : 16-12-00 13:59

Dit problem er, at typen String er en pointer til en streng (hvorved du ikke
bruger 256 bytes lagerplads) men kun adressen + strengens længde). Denne
type er ikke sammenlignelig med en String[nn] som har fast lagerallokering,
og selvom du fik det oversat ville med medføre stakfejl når du afviklede
koden.

Prøv i stedet at definere rutinen som

Procedure SletBlanke(var S);
var
aS : String[255] absolute S;
begin
osv. (og husk ikke at adressere ud over strengens faktiske længde)

men du må IKKE kalde proceduren med en parameter af typen String, kun
String[nn].

Du bør i øvrigt bruge standardtypen String noget mere, den er
pladsbesparende medmindre du arbejder med meget korte strenge.


Med venlig hilsen

Bjørn Johansen

~*~ Mivi ~*~ skrev i meddelelsen ...
>Hej
>
>Jeg sidder lige nu og har et skide irriterrende problem.
>
>Jeg har lavet en procedure i Delphi, som ser ud som følger:
>
>
>Procedure SletBlanke (VAR S : String);
>
>
>Når jeg kalder denne procedure, fører jeg en vilkårlig streng over til
>denne.
>Det kan f.eks. være en variabel af typen STRING[10].
>
>Nu siger compileren til mig, at det kan jeg ikke da de ikke er af type.
>
>I Turbo Pascal 7.0 til MS-DOS kan man slå et compiler directiv fra [{$V-}],
>som slår dette check fra.
>
>Det har jeg prøvet i delphi, men det hjalp ikke !!
>
>Jeg har ligeledes prøve at fjerne STRICT VAR_CHECK under Project, Options,
>Compiler.
>Ingen effekt.
>
>Gør jeg noget forkert ??
>
>Michael
>
>
>



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

Månedens bedste
Årets bedste
Sidste års bedste