AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Isalpha, IsNum, IsString als eine Funktion
Thema durchsuchen
Ansicht
Themen-Optionen

Isalpha, IsNum, IsString als eine Funktion

Ein Thema von Go2EITS · begonnen am 3. Apr 2009 · letzter Beitrag vom 11. Apr 2009
Antwort Antwort
Seite 4 von 5   « Erste     234 5      
Benutzerbild von himitsu
himitsu

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

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 8. Apr 2009, 18:28
Zitat:
//Variablen absichtlich global deklariert.
aber warum eigentlich?
(diese werden doch nur innerhalb der Funktion benötigt)

so liegen die jetzt im Heap(?) und müssen jedesmal dereferenziert werden ... Lokal würden die nur auf dem Stack landen und oftmals sogar nur in den Registern.



und vorallem das For + globales CheckStr_i geht bei dir so einfach?
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#32

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 8. Apr 2009, 18:46
@himitsu
Nehme den Var Abschnitt in die Funktion Checkstr mit rein, also lokal. 1000000 mal die Variablen neu angelegen beim Aufruf der Funktion kostet Zeit. Probiere es mal aus. Ein "Minimal-Profiler" ist ja mit dabei.
Zitat:
und vorallem das For + globales CheckStr_i geht bei dir so einfach?
Ja. Sieht so aus. Ein globales i als For-Schleifenvariable würde ich nie nehmen, daher der Zusatz CheckStr_ beim CheckStr_i.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 8. Apr 2009, 19:02
der Stack ist doch schon reserviert ... es wird also kein extra Speicher reserviert/freigegeben, für die lokalen Variablen, vorallem da für deine Funktion eh ein Stackframe erstellt wird ... dürft doch also nichts ausmachen, ob da nun 10 oder 20 Byte reserviert werden (wird eh nur ein Integer/Register > der Stackpointer < geändert)

und bei mir meckert delphi eigentlich immer, vonwegen nur lokale Variablen for For
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#34

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 8. Apr 2009, 19:36
Wie gesagt, nehme den globalen Var-Abschnitt und kopiere diesen lokal in CheckStr rein und führe dann das Programm aus. Es benötigt länger.
Meckern tut Delphi bei mir auch, das stört mich nicht weiter, solange compiliert wird.
  Mit Zitat antworten Zitat
Benutzerbild von blawen
blawen

Registriert seit: 30. Nov 2003
Ort: Luterbach (CH)
654 Beiträge
 
Delphi 12 Athens
 
#35

Re: Isalpha, IsNum, IsNumeric als eine Function

  Alt 8. Apr 2009, 20:34
Zitat von himitsu:
Delphi-Quellcode:
for i:=1 to Length(Str) do
   begin
      if str[i] in ['0'..'9'] then
        Include(Result, Ziffer);
      else if str[i] in ['a'..'z','A'..'Z'] then
        Include(Result, Zeichen);
      else
        Include(Result, Andere);

      if Result = [Ziffer, Zeichen, Andere] then
         break;
   end;
Auch wenn diese Bemerkung mit der aktuellen Lösung nichts mehr zu tun hat, erlaube ich mir eine Anmerkung loszuwerden...

Seit wann kommt vor ein "else" ein ";" ??? (Taucht in den genannten Versionen mehrfach auf...)
Roland
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 8. Apr 2009, 20:41
das passiert mal schnell, wenn man Copy&Paste nutzt
( ";" müssen also noch weg)
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 9. Apr 2009, 08:45
Man kann übrigens viel Zeit und Code sparen, indem man tabellengestützt feststellt zu welchen Typen ein Zeichen gehört.
Man hat dann ein Array von 256 Elementen
AnsiCharTypes: array [Char] of Word; entweder als vordefiniertes Konstantenarray oder man initialisiert es einmal beim Programmstart.
Delphi-Quellcode:
function CharIsAlpha(const C: Char): Boolean;
begin
  Result := (AnsiCharTypes[C] and C1_ALPHA) <> 0;
end;
Wie das genau geht, kann man sich in der Unit JclAnsiStrings aus der Jedi Code Library anschauen.
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#38

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 9. Apr 2009, 09:26
Interessante Idee. Das werd ich mal probieren. Danke.
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.270 Beiträge
 
Delphi 10.4 Sydney
 
#39

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 9. Apr 2009, 09:45
Hallo,

netter Thread ...

Aber
< Meckern tut Delphi bei mir auch, das stört mich nicht weiter, solange compiliert wird. >

Genau deshalb würde ich deine Methode nicht benutzen (wenn ich sie brauche würde ).
Wenn du mit offenen Augen Compiler Hinweise und -warnungen ignorierst,
kann das schnell ins Auge gehen.

<Protz> Mein Code hat weder Warnungen noch Hinweise </Protz>

Für den Test würde ich dann noch DUnit nehmen.


Heiko
Heiko
  Mit Zitat antworten Zitat
Go2EITS

Registriert seit: 25. Jun 2006
519 Beiträge
 
Delphi 7 Personal
 
#40

Re: Isalpha, IsNum, IsString als eine Funktion

  Alt 9. Apr 2009, 10:44
@hoika Darum auch ein eindeutige Namen, die man wohl nicht 2x verwendet: z. B. Checkstr_i
Es bleibt Dir überlassen, was Du machst. Hier wird niemand gezwungen.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 5   « Erste     234 5      


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 14:09 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