Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Stringlänge in einer Funkctionvariable bezrenzen (https://www.delphipraxis.net/116505-stringlaenge-einer-funkctionvariable-bezrenzen.html)

gandime 30. Jun 2008 23:04


Stringlänge in einer Funkctionvariable bezrenzen
 
Hi,
ich möchte eine Stringlänge in einer Funkctionvariable bezrenzen also sozusagen das blos halt in richtiger Form ;-)
Delphi-Quellcode:
function das(s:string [1]):string;

pilic 30. Jun 2008 23:12

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
Wieso so kompliziert? Du kannst es ja innerhalb der Funktion überprüfen mit Length() oder mit SetLength() den String abschneiden

Cyf 30. Jun 2008 23:32

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
Weil er die Variable z.B. noch benutzen will (falls er sich enschließt daraus keine eigene Funktion zu machen, oder Übergabe per Referenz, etc.).

Delphi-Quellcode:
function das(str: string): string
begin
  Result:= format('%.3s', ['foobar']);
end;

gandime 1. Jul 2008 00:00

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
natürlich würde ich die Variable nochmal abrufen und ich möchte damit zeigen das die function nur ein zeichen zulässt

Dax 1. Jul 2008 00:15

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
Für einzelne Zeichen gibts Char.

alzaimar 1. Jul 2008 05:50

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
Delphi-Quellcode:
Type
  TStringMitMax80Zeichen = String[80];

{$R+}
Function MyFunc (sParameter : TStringMitMax80Zeichen );
Begin
....
End;
{$R-}
Wo und wie die Bereichsprüfung ($R) hier als Kompileroption genau implementiert wird, kannst du noch ausprobieren.

hoika 1. Jul 2008 06:12

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
Hallo,

der Compiler-Schalter sollte nicht notwendig sein,
String[80] ist ja automatisch ein ShortString.


Heiko

gandime 1. Jul 2008 13:54

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
jo danke ich so gehts

alzaimar 2. Jul 2008 07:23

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
Zitat:

Zitat von hoika
der Compiler-Schalter sollte nicht notwendig sein,String[80] ist ja automatisch ein ShortString

Würde denn ohne Compilerschalter ein impliziter Typecast von AnsiString => String[80] beim Aufruf nicht zu einem Pufferüberlauf führen?

angos 2. Jul 2008 07:54

Re: Stringlänge in einer Funkctionvariable bezrenzen
 
[edit] und weg damit.[/edit]


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:18 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz