Autor Beitrag
NuCHiLL
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

WXP
D7E
BeitragVerfasst: Fr 19.03.04 15:20 
Hallo,
kann man in dem folgenden Schnipsel die IF-Abfage verkürzen?

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
procedure TForm1.IdIRC1Raw(Sender: TObject; AUser: TIdIRCUser; ACommand,
  AContent: Stringvar Suppress: Boolean);
var Text: String;
begin
 Text:=ansilowercase(acontent);

 memo1.lines.add('<' +auser.Nick+ '> ' +acontent);
   if ((Text = channel.Text + ' :ich teste'OR
       (Text = channel.Text + ' :ich teste!'OR
       (Text = channel.Text + ' :ich teste !'))
   then
      begin
      ...
      end;
end;


wenn möglich mit Schnipsel :wink:

Moderiert von user profile iconPeter Lustig: Topic verschoben

_________________
-I am what I am and I do what I can-
NuCHiLL Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

WXP
D7E
BeitragVerfasst: Fr 19.03.04 15:33 
Sorry! hab zu spät gemerkt, das es in der falschen "abteilung" war... :oops:

_________________
-I am what I am and I do what I can-
MaxiTB
ontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic starofftopic star
Beiträge: 679

Win2000, WinXp, Workbench ;-)
D7 Ent, VS2003 Arch.
BeitragVerfasst: Fr 19.03.04 18:54 
Leider kenne ich keinen schnelleren Weg ...
Es gäbe noch die Möglichkeiten, den String auseinanderzuschnippseln, damit bist du vielleicht (!) ein bisserl schneller, aber der Code wird sogar mehr. Selbst wenn es ein elegantes 'case of' für strings gäbe würde es dir nicht weiterhelfen ... auch wenn das persönlich bei den meisten Programmiersprachen vermisse (da glänzt mal VB).

_________________
Euer Mäxchen
Wer früher stirbt, ist länger tot.
NuCHiLL Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

WXP
D7E
BeitragVerfasst: Sa 20.03.04 12:28 
MaxiTB hat folgendes geschrieben:
Leider kenne ich keinen schnelleren Weg ...
...


Es soll eigentlich nicht schneller sein! Ich möchte den Code verkürzen...
Hab mir überlegt den Find-Dialog einzubauen, dürfte aber das gleiche Problem sein, zudem wird der code dadurch länger...

so wie es aussieht scheint es wirklich keine andere Möglichkeit zu geben...

danke @MaxiTB!

_________________
-I am what I am and I do what I can-
catweasel
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 487
Erhaltene Danke: 1

Win 7 64bit
Delphi 7 Second Sedition V7.2
BeitragVerfasst: Sa 20.03.04 13:34 
Hmm Ich weiss zwar selbst nicht wie das geht, aber kann man da keine Mengen in Delphi definieren ?

Muss irgendwie mit SET of gehen, hab aber keine Ahnung da so richtig
So nach dem Motto:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
const
menge : set of  ['ich teste','ich teste!','ich teste !'];

var abfrage : string;


//   .. und dann irgendwie so abfragen...

if abfrage is in menge then ..........


Hab aber echt keien Ahnung ob das so irgendwie möglich ist..... bzw. wie das mit den Sets genau funktiuoniert

_________________
Pommes werden schneller fertig wenn man sie vor dem Frittieren einige Minuten in siedendes Fett legt.
Phantom1
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 390



BeitragVerfasst: Sa 20.03.04 13:38 
versuche es mal so hier:

NuCHiLL hat folgendes geschrieben:

ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
procedure TForm1.IdIRC1Raw(Sender: TObject; AUser: TIdIRCUser; ACommand,
  AContent: Stringvar Suppress: Boolean);
begin
 memo1.lines.add('<' +auser.Nick+ '> ' +acontent);

 if Pos(channel.Text+' :ich teste', acontent)>0 then
 begin
   ...
 end;
end;

NuCHiLL Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 37

WXP
D7E
BeitragVerfasst: Sa 20.03.04 16:09 
thx @Phantom1 !!!

funktioniert!

_________________
-I am what I am and I do what I can-
Brainiac
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Sa 20.03.04 16:13 
catweasel hat folgendes geschrieben:
Muss irgendwie mit SET of gehen, hab aber keine Ahnung da so richtig


Nee, nee... mit Set is da nix. Ein set ist intern was ganz anderes, nämlich eine Bitmaske.

Zum Beispiel in "Set of byte" sind 256 bits, sprich 8 Integers hintereinander.
Wird 8 in das Set aufgenommen, dann wird das 8te Bit auf 1 gesetzt. Umgekehrt funktioniert der Test mit 'in'.
Wenn du jetzt ein "Set of (Element1,Element2,Element3,Element4)" deklarierst, bekommst du intern eine Bitmaske aus 4 Bits.
Mit irgendwas anderem als solchen internen Konstanten und Zahlen bis 255 geht das aber nicht.

Mann verdammt ich sollte echt langsam mal eine "Was macht Delphi intern"-FAQ schreiben anstatt sowas 10X in unterschiedlichen Foren zu erklären.