Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi wenn in ... dann machwas (https://www.delphipraxis.net/10799-wenn-dann-machwas.html)

Die Muhkuh 25. Okt 2003 16:17


wenn in ... dann machwas
 
HiHo,

da sich mein Modem verabschiedet hat muss ich vom Notebool posten :grin:

Also mein gedanke ist ganz einfach und zwar:


wenn in nem Edit (oder so) der text .ini vorkommt dann so per showmessage eine Meldung kommen!
z.b im edit seht "Böaböa.ini" dann so eine Meldung kommen nur WiE?

Spiddi

mirage228 25. Okt 2003 16:19

Re: wenn in ... dann machwas
 
im onChange des Edits einfügen

Delphi-Quellcode:
procedure TForm1.Edit1Change(Sender: TObject);
begin
  if pos(ansilowercase(edit1.text), '.ini') <> 0 then
  Showmessage('INI!!!');
end;
mfG
mirage228

Die Muhkuh 25. Okt 2003 16:25

Re: wenn in ... dann machwas
 
Zitat:

Delphi-Quellcode:
 if pos(ansilowercase(edit1.text), '.ini') <> 0 then
  Showmessage('INI!!!');


Mannmanmanduehm, kein Wunder geht meins nicht! ich hab nähmilch das so geschrieben :oops:

Delphi-Quellcode:
 if pos('.ini', Edit1.text) <> 0 then
  Showmessage('INI!!!');
:oops:

THX MIRA

Duffy 25. Okt 2003 16:41

Re: wenn in ... dann machwas
 
Hallo Spider,
Zitat:

Zitat von Spider
Zitat:

Delphi-Quellcode:
 if pos(ansilowercase(edit1.text), '.ini') <> 0 then
  Showmessage('INI!!!');


Mannmanmanduehm, kein Wunder geht meins nicht! ich hab nähmilch das so geschrieben :oops:

Delphi-Quellcode:
 if pos('.ini', Edit1.text) <> 0 then
  Showmessage('INI!!!');
:oops:

THX MIRA

Die erste Version von Mirrage dürfte wohl schiefgehen, so die Hilfe von Delphi
Zitat:

Zitat von Delphi Hilfe
Die Funktion gibt den Indexwert des ersten Zeichens innerhalb des angegebenen Teil-Strings zurück, der in einem String vorkommt.

Unit

System

Kategorie

String-Verarbeitung

Delphi-Syntax:

function Pos(Substr: string; S: string): Integer;

Beschreibung

In Delphi sucht Pos in dem String S nach dem Teil-String Substr. Die Parameter Substr und S sind String-Ausdrücke.

Wird der Teil-String gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert Null zurückgegeben.

Die Funktion PosEx entspricht Pos, hat aber eine umfangreichere Funktionalität und kann in C++ Code verwendet werden.

Es liegt wohl eher daran, das beim vergleichen die Gorß- Kleinschribung nicht beachtet wird.

mirage228 25. Okt 2003 16:44

Re: wenn in ... dann machwas
 
Wenn Groß- und Kleinschreibung keine Rolle spielt, kann man mein AnsiLowerCase() höchstens weglassen - funktionieren würde es auf jeden Fall.

mfG
mirage228 [im Übrigen mit einem r @ Duffy]

Duffy 25. Okt 2003 16:49

Re: wenn in ... dann machwas
 
@Mirage228
Zitat:

Zitat von mirage228
Wenn Groß- und Kleinschreibung keine Rolle spielt, kann man mein AnsiLowerCase() höchstens weglassen - funktionieren würde es auf jeden Fall.

mfG
mirage228 [im Übrigen mit einem r @ Duffy]

die Parameter zum suchen sind vertauscht. In deinem Beispiel suchst Du "ansilowercase(edit1.text)" in ".ini". Das klappt nur wenn "ansilowercase(edit1.text)" = ".ini" ist.
bye

mirage228 25. Okt 2003 16:54

Re: wenn in ... dann machwas
 
In dem Fall hast du natürlich Recht!

Auf jedenfall muss der Parameter "SubStr" von Pos = ".ini" und der Parameter "S" = Edit1.Text;

Ich weiss jetzt nicht, in wie fern die Parameterreihenfolge sich bei den Delphi Versionen unterscheiden.

mfG
mirage228

Duffy 25. Okt 2003 16:56

Re: wenn in ... dann machwas
 
Hallo mirage228,
die Parameterreihenfolge hat sich seit Turbo Pascal nicht verändert. Sie ist in allen Versionen gleich geblieben.
bye

Die Muhkuh 25. Okt 2003 17:44

Re: wenn in ... dann machwas
 
Hiho,

fängt ja nicht an zu streiten!

@Mirage

deine lösung geht nicht wenn z.b da steht 'odkod.ini' kommt keine meldung!

mirage228 25. Okt 2003 17:53

Re: wenn in ... dann machwas
 
Hi Spider,

die Parameter musst du genau anders rum schreiben, wie Duffy bereits gesagt hatte ;-)

mfG
mirage228

Die Muhkuh 25. Okt 2003 17:56

Re: wenn in ... dann machwas
 
also dann

[delphi] if pos('.ini', ansilowercase(Edit1.text)) <> 0 then
Showmessage('INI!!!');
oder?

mirage228 25. Okt 2003 18:02

Re: wenn in ... dann machwas
 
genau, du kannst aber das AnsiLowerCase() um das Edit1.Text weglassen, da POS nicht auf Groß- und Kleinschreibung achtet.

Die Muhkuh 25. Okt 2003 18:04

Re: wenn in ... dann machwas
 
Zitat:

Groß- und Kleinschreibung achtet.
#


Das macht nix

Christian Seehase 25. Okt 2003 19:18

Re: wenn in ... dann machwas
 
Moin Mirage,

Zitat:

Zitat von mirage228
da POS nicht auf Groß- und Kleinschreibung achtet.

Du musst nicht alles glauben, was in der Hilfe steht ;-)
Pos unterscheidet, zumindest in D5, sehr wohl die Gross- / Kleinschreibung.

APP 25. Okt 2003 21:45

Re: wenn in ... dann machwas
 
Zitat:

Zitat von Christian Seehase
...Du musst nicht alles glauben, was in der Hilfe steht ;-)
Pos unterscheidet, zumindest in D5, sehr wohl die Gross- / Kleinschreibung.

Aua,
ich arbeite gerade an eim Projekt in der Fa. (D7) da funkt POS CasInsesitive,
zu Hause habe ich D5 und Christian hat recht!
Puh, das hätte problematisch werden können :roll:

Christian Seehase 25. Okt 2003 22:43

Re: wenn in ... dann machwas
 
Moin Armin,

Zitat:

Zitat von APP
...(D7) da funkt POS CasInsesitive,

:shock:

gut zu wissen. Kann man das Verhalten irgendwie einstellen?
Das heisst dann also ggf. die Codes nach Pos zu durchforsten, vor allem die Stellen, an denen man sich darauf verlässt, dass es Case sensitiv arbeitet :?
Wohingegen sich die anderen vereinfachen lassen.
Was jetzt noch wichtig wäre: Berücksichtigt POS dabei auch das Gebietsschema, wird also bei der Suche nach ä auch Ä gefunden?

APP 26. Okt 2003 08:00

Re: wenn in ... dann machwas
 
Hallo Christian,
ich habe leider das ganze Wochenende keinen Zugriff auf D7,
daher kann ich das erst am Montag prüfen (ich gestehe, nach
einer Mütze voll Schlaf bin ich mir nur mehr 99,9% sicher,
dass dieses Feature in D7 wirklich funktioniert :mrgreen:).

Um das Gebietsschema zu berücksichtigen, müsste
Delphi-Quellcode:
AnsiPos()
//oder
Pos(AnsiUppercase(Teilstring),AnsiUppercase(Suchstring));
ausreichen, oder?

[EDIT] Ojeh, Sharky hat mich gerade widerlegt, POS dürfte in D7
auch case sensitive sein (Asche auf mein Haupt :angle: ) [/EDIT]

maximov 26. Okt 2003 11:31

Re: wenn in ... dann machwas
 
Es steht doch da laut und (doppel)deutlich in der hilfe:

Zitat:

Wird der Teil-String gefunden, gibt Pos den Integer-Index des ersten Zeichens von Substr in S zurück. Die Groß/Kleinschreibung wird von Pos nicht berücksichtigt. Ist Substr nicht vorhanden, wird der Wert Null zurückgegeben.
Das soll heissen, dass es eben doch casesentive ist...hätten die bisschen präziser und eindeutiger übersetzen können :wink:

cu, maxmov.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:32 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