Thema: Delphi Funktion Rückgabewert

Einzelnen Beitrag anzeigen

guidok

Registriert seit: 28. Jun 2007
417 Beiträge
 
#10

Re: Funktion Rückgabewert

  Alt 26. Aug 2009, 11:09
Zitat:
Unit

SysUtils

Syntax

function Format(const Format: string; var Args: array of TVarRec): string; overload;

function Format(const Format: string; var Args: array of TVarRec; var FormatSettings: TFormatSettings): string; overload;
Die Funktion Format ist übrigens bereits in den SysUtils definiert. Du solltest bei der Vergabe deiner Namen für Variablen, Prozeduren, Funktionen usw. darauf achten, dass es den Namen noch nicht gibt, um später Probleme zu vermeiden.

Ein einfacher Weg wäre es z.B. der eigenen Variablen, Routine usw. etwas voranzustellen (MyFormat, kmFormat [km steht hier für kingmarv]).

Edit:

Noch was wichtiges: Die Möglichkeit mit TStringList, wie oben vorgestellt funktioniert nur solange die gesuchten Substrings in dieser Reihenfolge im String stehen. Falls sich das mal ändert, musst du das anders lösen:

Delphi-Quellcode:
function GetSubStringByName(AStr: String; const AName: String): String;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.Delimiter := '|';
    sl.StrictDelimiter := True;
    sl.DelimitedText := AStr;
    Result := sl.Values[AName];
  finally
    sl.Free;
  end;
end;

//Aufruf:

GetSubStringByName(Quellstring, 'nachname'); //liefert als Ergebnis den Teil der hinter nachname= steht
Falls du den anderen Aufruf bevorzugst, dann könnte das so aussehen:

Delphi-Quellcode:
type
  TSubstring = (ssSpieltag, ssNachname, ssVorname, ssTippstring);

const
  CSubstring: Array[TSubstring] of Shortstring = ('spieltag', 'nachname', 'vorname', 'tippstring');

function GetSubStringByName2(AStr: String; const ASubstring: TSubstring): String;
var
  sl: TStringList;
begin
  sl := TStringList.Create;
  try
    sl.Delimiter := '|';
    sl.StrictDelimiter := True;
    sl.DelimitedText := AStr;
    Result := sl.Values[CSubstring[ASubstring]];
  finally
    sl.Free;
  end;
end;

//Aufruf:

GetSubStringByName2(Quellstring, ssNachname); //liefert als Ergebnis den Teil der hinter nachname= steht
Diese beiden Varianten richten sich nur nach dem, was VOR dem "=" steht und funktionieren auch wenn sich die Reihenfolge ändert.

Jetzt solltest du nur noch verstehen, was in den beiden Routinen passiert...
  Mit Zitat antworten Zitat