AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

POS findet was das ich nicht verstehe... ?

Ein Thema von user0815 · begonnen am 27. Mär 2014 · letzter Beitrag vom 28. Mär 2014
Antwort Antwort
Seite 2 von 3     12 3      
v2afrank

Registriert seit: 9. Mai 2005
Ort: Bocholt
575 Beiträge
 
Delphi XE2 Professional
 
#11

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

  Alt 28. Mär 2014, 10:49
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
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#12

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

  Alt 28. Mär 2014, 11:01


Gib es mal da ein.
http://www.delphipraxis.net/dp_reference.php
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#13

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

  Alt 28. Mär 2014, 13:11
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.
fork me on Github

Geändert von sx2008 (28. Mär 2014 um 13:15 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#14

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

  Alt 28. Mär 2014, 13:51
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)
  • AText und AParamName werden durch den Aufruf nicht verändert const
  • Value wird für die Ermittlung nicht benötigt und gibt nur etwas zurück out
  • Wird ein Wert zwingend benötigt, so muss nicht Value überprüft werden, sondern einfach nur der Result des Aufrufs (kompakter und lesbarer)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (28. Mär 2014 um 13:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#15

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

  Alt 28. Mär 2014, 13:56
richtig...

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

Oder ParamStr, was beim Fehlen einen Leerstring liefert.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#16

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

  Alt 28. Mär 2014, 14:01
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 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;
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (28. Mär 2014 um 14:04 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#17

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

  Alt 28. Mär 2014, 17:19
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.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#18

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

  Alt 28. Mär 2014, 17:24
Die Basis ist aber immer TryStrToInt
Ich dachte val. Habe das auch genommen, weil es kein StrToUInt gibt.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#19

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

  Alt 28. Mär 2014, 17:43
Wenn du mehr brauchst, dann StrToInt64. (andersrum ist die 64 einfach nur überladen, da dort automatisch entschieden wird, anhand des Parameters)
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Garfield
Garfield

Registriert seit: 9. Jul 2004
Ort: Aken (Anhalt-Bitterfeld)
1.335 Beiträge
 
Delphi XE5 Professional
 
#20

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

  Alt 28. Mär 2014, 17:50
Könnte ich machen. Aber die Werte in den Strings werden in LowPart und HighPart eines TULargeInteger eingetragen.
Gruss Garfield
Ubuntu 22.04: Laz2.2.2/FPC3.2.2 - VirtBox6.1+W10: D7PE, DXE5Prof
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:50 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz