Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   POS findet was das ich nicht verstehe... ? (https://www.delphipraxis.net/179721-pos-findet-das-ich-nicht-verstehe.html)

v2afrank 28. Mär 2014 09:49

AW: POS findet was das ich nicht verstehe... ?
 
Und ich habe gelernt dass man nicht jede Delphi Funktion bei Google eingeben kann. Da ich PosEX auch noch nie benutzt habe, habe ich da mal bei Google nach gesucht.(Allerdings ohne das Schlagwort Delphi). Hat mit Programmierung nicht mehr viel zu tun

himitsu 28. Mär 2014 10:01

AW: POS findet was das ich nicht verstehe... ?
 
:lol:

Gib es mal da ein. :zwinker:
http://www.delphipraxis.net/dp_reference.php

sx2008 28. Mär 2014 12:11

AW: POS findet was das ich nicht verstehe... ?
 
Also ganz allgemein sollte man Funktionen gegenüber Prozeduren mit einem Var-Parameter bevorzugen.
Perlsau hat das im Beitrag #4 schon ganz richtig gemacht. (man sollte aber auch den "Nachrichtentext" als weiteren Parameter übergeben)

Insbesondere Funktionen die ausschlieslich von ihren Eingangsparameter(n) abhängen und keine Nebeneffekte haben (sog. pure functions) machen das Testen des Codes zum Kinderspiel.

Sir Rufo 28. Mär 2014 12:51

AW: POS findet was das ich nicht verstehe... ?
 
Die richtige Implementierung wäre:
Delphi-Quellcode:
function GetParamValue( const AText, AParamName : string; out Value : string ) : Boolean;
begin
  ...
end;
und der Aufruf
Delphi-Quellcode:
var
  Nachricht : string;
  S1, S2 : string;

GetParamValue( Nachricht, 'M1', S1 );

if not GetParamValue( Nachricht, 'M2', S2 ) then
  raise Exception.Create( 'Parameter M2 wird zwingend benötigt!' );
Documentation by Design
  • Alle benötigten Informationen werden übergeben (keine magischen Daten von irgendwo)
  • Delphi-Quellcode:
    AText
    und
    Delphi-Quellcode:
    AParamName
    werden durch den Aufruf nicht verändert
    Delphi-Quellcode:
    const
  • Delphi-Quellcode:
    Value
    wird für die Ermittlung nicht benötigt und gibt nur etwas zurück
    Delphi-Quellcode:
    out
  • Wird ein Wert zwingend benötigt, so muss nicht
    Delphi-Quellcode:
    Value
    überprüft werden, sondern einfach nur der
    Delphi-Quellcode:
    Result
    des Aufrufs (kompakter und lesbarer)

himitsu 28. Mär 2014 12:56

AW: POS findet was das ich nicht verstehe... ?
 
richtig...

Man kann es auch wie bei StrToInt, TryStrToInt und StrToIntDef machen?

Oder ParamStr, was beim Fehlen einen Leerstring liefert.

Sir Rufo 28. Mär 2014 13:01

AW: POS findet was das ich nicht verstehe... ?
 
Zitat:

Zitat von himitsu (Beitrag 1253789)
richtig...

Man kann es auch wie bei StrToInt, TryStrToInt und StrToIntDef machen?

Oder ParamStr, was beim Fehlen einen Leerstring liefert.

Die Basis ist aber immer
Delphi-Quellcode:
TryStrToInt
Delphi-Quellcode:
function TryFoo( const AInput : TSomething; out AOutput : TDifferent ) : Boolean;
begin
  ...
end;

function Foo( const AInput : TSomething ) : TDifferent;
begin
  if not TryFoo( AInput, Result ) then
    raise EFooException.Create( 'Please try something different' );
end;

function FooDefault( const AInput, ADefault : TSomething ) : TDifferent;
begin
  if not TryFoo( AInput, Result ) then
    Result := ADefault;
end;

himitsu 28. Mär 2014 16:19

AW: POS findet was das ich nicht verstehe... ?
 
Zitat:

Zitat von v2afrank (Beitrag 1253763)
Und ich habe gelernt dass man nicht jede Delphi Funktion bei Google eingeben kann. Da ich PosEX auch noch nie benutzt habe, habe ich da mal bei Google nach gesucht.(Allerdings ohne das Schlagwort Delphi). Hat mit Programmierung nicht mehr viel zu tun

Es kommt drauf an ... hatte grade mal versuchsweise das SafeSearch wieder aktiviert, aber dann entgehen einem die Artikel von goFeminin und deren coole musikalische Werbung im Hintergrund.

Garfield 28. Mär 2014 16:24

AW: POS findet was das ich nicht verstehe... ?
 
Zitat:

Zitat von Sir Rufo (Beitrag 1253794)
Die Basis ist aber immer
Delphi-Quellcode:
TryStrToInt

:gruebel: Ich dachte val. Habe das auch genommen, weil es kein StrToUInt gibt.

himitsu 28. Mär 2014 16:43

AW: POS findet was das ich nicht verstehe... ?
 
Wenn du mehr brauchst, dann StrToInt64. (andersrum ist die 64 einfach nur überladen, da dort automatisch entschieden wird, anhand des Parameters)

Garfield 28. Mär 2014 16:50

AW: POS findet was das ich nicht verstehe... ?
 
Könnte ich machen. Aber die Werte in den Strings werden in LowPart und HighPart eines TULargeInteger eingetragen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:30 Uhr.
Seite 2 von 3     12 3      

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