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
Benutzerbild von himitsu
himitsu

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

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

  Alt 27. Mär 2014, 13:18
Die StrUtils ist bei mir eh oftmals mit drin, da die noch andere nette Funktionen drin hat.
StartsText, ContainsText, EndsText, MatchText, IndexText (auch gut für ein CASE mit Strings) uvvm.

In Math liegen zwar ein paar IfThen, aber die String-Version versteckt sich in der StrUtils.


PS: Die StrUtils selber vergrößert die EXE selber praktisch garnicht.
- ungenutzte Funktionen werden nicht in die Anwendung gelinkt
- es gibt keinen "initialization"-Abschnitt oder globale Variablen
- bis auf die SysUtils werden keine bösen Units eingebunden
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (27. Mär 2014 um 13:21 Uhr)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#2

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

  Alt 27. Mär 2014, 14:13
Hm, vielleicht sollte ich mir die Unit mal genauer angucken. Was ich bisher gesehen habe erinnert mich leicht an meinen alten TI-99/4A. Der hatte auch viele tolle String-Funktionen, die ich später beim C64 vermisst habe und nun hier wieder entdecke
  Mit Zitat antworten Zitat
v2afrank

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

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

  Alt 28. Mär 2014, 09: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.752 Beiträge
 
Delphi 12 Athens
 
#4

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

  Alt 28. Mär 2014, 10:01


Gib es mal da ein.
http://www.delphipraxis.net/dp_reference.php
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

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

  Alt 28. Mär 2014, 12: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 12: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
 
#6

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

  Alt 28. Mär 2014, 12: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 12:57 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

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

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

Oder ParamStr, was beim Fehlen einen Leerstring liefert.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#8

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

  Alt 28. Mär 2014, 17:15
Die richtige Implementierung wäre...
Ich wusste nicht, das es richtig ist, wenn eine Funktion zwei Werte liefert: Einen 'Value' und einen Rückgabewert. Zudem wäre eine Erklärung, wie Du sie angibst, ja überflüssig, wenn der Code wirklich selbstdokumentierend wäre
Wie wäre es (beim Ansatz 'self documenting code') mit drei Funktionen?
Delphi-Quellcode:
Function HasParameter (const AText, AParamName : string) : Boolean;
Function GetOptionalParamValue (const AText, AParamName : string) : String;
Function GetMandantoryParamValue (const AText, AParamName : string) : String;
DAS wäre dann selbstdokumentierend. Finde ich.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

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

  Alt 28. Mär 2014, 16: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.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:10 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