Forums Neueste Beiträge
 

[NEU/TEST] oje_bug_include.ds

30/07/2008 - 21:43 von Hermann Hippen | Report spam
**Supersede: Mir war die Zeile If Pos('begin ',Strings[i]) > 0 Then zu
**tief gerutscht, sie gehört natürlich vor die Repeatschleife und nicht in
**die selbe. Sorry :-( (war aber auch warm gestern)

Auf Anregung von Oliver und Andreas, danke für die Idee :-), wurde das
Script nochmals veràndert.
Die Kennzeichnung entfàllt und muß daher beim Versenden auch nicht mehr
entfernt werden.

Auch bei dieser Variante brauchen wir die ztools.dll, falls noch nicht
vorhanden:
http://www.ewetel.net/~hermann.hippen/zTools.dll , sie muß im
Dialogverzeichnis stehen. Bei einigen wurde es in dem Verzeichnis nicht
gefunden, dann kann man es in das c:\windows\system32 Verzeichnis
kopieren, dort sollte es dann auf jeden Fall gefunden werden.

Das folgende Script bitte kopieren:

Var
rf : TReplaceFlags;
//
Function RegexMatch( pSubject, pRegex: PChar; IgnoreCase: Boolean ):
Boolean;
external 'zRegexMatch@zTools.dll stdcall';
//
Function oje_bug_match(S:String):Boolean;
Begin
Result:=False;
If RegexMatch(S,'^begin\s{2,100}\d{1,100}\W.+[a-z]',True) Then
Result:=True;
End;
//
Procedure KillOjeBug(var Msg: TStringlist);
Var
i : Integer;
Begin
rf := [rfReplaceAll];
With Msg do
Begin
For i := 1 to Count - 1 do
Begin
If Pos('begin ',Strings[i]) > 0 Then
If oje_bug_match(Strings[i]) Then
Repeat
Strings[i]:=StringReplace(Strings[i],'begin ','begin ',rf);
until Pos('begin ',Strings[i]) = 0;
End;
End;
End;
//

In der Scriptverwaltung auf 'Eigene Scripte' gehen dann Datei->Neues Script
anklicken, den Namen 'oje_bug_include' eingeben (falls nicht schon
vorhanden).
Jetzt den Inhalt des rechten Fensters durch den Inhalt der Zwischenablage,
komplett überschreiben und das Script nur speichern, nicht compilieren.

Die oje_bug_include.ds wird in OnBeforeSavingMessage (Ereignisscripte), wie
unten dargestellt, eingebunden und aufgerufen.

| program OnBeforeSavingMessage;
| uses textfile, Forms, StdCtrls;
|
| // weitere Include-Files-Namen hier nachfolgend eintragen
| {$I Quote_Correction_Include.ds}
| {$I oje_bug_include.ds}
| procedure OnBeforeSavingMessage( var Message : TStringlist;
| const Servername : String;
| const IsEmail : Boolean );
|
| begin
| KillOjeBug ( Message );
| QuoteCorrection ( Message, IsEmail );
| end;
|
| begin
| end.

Cu, Hermann Hippen.
Die Tàtigkeit eines Behördenleiters ist beschrànkt.
Sie beschrànkt sich darauf, seine Mitarbeiter zu demotivieren.
 

Lesen sie die antworten

#1 Karl-Heinz Rademacher
31/07/2008 - 15:21 | Warnen spam
*Hermann Hippen* schrieb am 30.07.2008

Auf Anregung von Oliver und Andreas, danke für die Idee :-), wurde das
Script nochmals veràndert.
Die Kennzeichnung entfàllt und muß daher beim Versenden auch nicht mehr
entfernt werden.



Also selbst auf die Gefaehr hin hier nun ausgelacht zu werden, aber zum
Thema selbst, ausser das es um ein OE-Bug geht, habe ich noch gar nichts
verstanden. Kann mir vielleicht mal jemand mit einfachen Worten die
Problemstellung um die es hier geht erlaeutern?

Danke.

Gruss
Karl-Heinz

http://kh-rademacher.de/4d
http://kh-rademacher.de/face

Ähnliche fragen