Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

  • Irgendwie wünsche ich mir, das (z.b. mit RegEx-Buddy) getestete reguläre Ausdrücke auch in XProfan einfach funktionieren.


    Dazu gehört dann auch irgendwann das Backreferences unterstützt werden und das ein Ausdruck nur einmal kompiliert wird und beliebig oft genutzt werden kann.


    Eventuell auch eine Automatik, die x-mal die Suche durchführt und dann ein StringArray[x] gefüllt hat.


    Dieser Ausdruck, extra in eine separate Datei eingelesen:

    Code: RegEx_Containersuche.RegEx
    (\WCom\(\s*?"(Close|Error|Open|Read|Set|SetExt|SetTimeOuts|Write)"|\WCreate\(\s*?"(Bitmap|Button|CheckBox|ChildWindow|ChoiceBox|Container|DateEdit|DefButton|Dialog|Edit|ExtDialog|FileMap|Font|Grid|Gridbox|GroupBox|hIcon|hMetaFile|hNewPic|hPic|hPicCopy|HScroll|hSizedPic|HTMLWin|Icon|IconButton|ImageList|Json|List|ListBox|MultiEdit|PicButton|RadioButton|RichEdit|SpinEdit|Static|StatusWindow|TabCtrl|Text|TimeEdit|Toolbar|Tooltip|TreeView|VScroll|Window)"|\Wdb\(\s*?"(AppendBlank|Browse|Close|Create|CreateIndex|Delete|Edit|fbCreate|fbDone|fbDrop|fbExec|fbGetBlob|fbInit|fbPutBlob|fbSQLExec|fbTableExists|fbUseDLL|Find|Get|GetField|GetMemo|Go|Index|Open|Pack|Put|PutField|PutMemo|PutRec|Seek|slCreate|slDone|slDrop|slExec|slGetBlob|slInit|slPutBlob|slSQLExec|slTableExists|slUseDLL|SQLDone|SQLExec|SQLGetBlob|SQLInit|SQLPutBlob|Undelete|Use)"|\Wdt\(\s*?"(Compare|CompareDate|CompareTime|DateTimeStr|DaysBetween|GetDate|GetDay|GetDoW|GetDoY|GetHour|GetMilliSec|GetMin|GetMonth|GetSec|GetTime|GetWoY|GetYear|IncDay|IncHour|IncMin|IncMonth|IncSec|IncYear|IsLeapYear|SetDate|SetDateTime|SetDay|SetHour|SetMilliSec|SetMin|SetMonth|SetSec|SetTime|SetYear)"|\WFileMap\(\s*?"(Close|Map|Open)"|\WFTP\(\s*?"(Connect|DeleteDir|DeleteFile|Disconnect|Download|GetDir|GetFileSize|ListDir|MakeDir|Rename|SetBinary|SetDir|SetPassive|SetProxy|Upload)"|\WGet\(\s*?"(ASMMode|AutoPaint|CallConv|CharSet|dbMemoWidth|DebugMode|Decimals|Errorlevel|Escape|FastMode|FileInfo|FileMode|GridBoxTitle|HashDel|HashListDel|HashMode|ListDel|LogFile|MenuBackCol|MenuBorderCol|MenuFont|MenuIconSize|MenuTextCol|MessageMode|MoveListMode|NumWidth|oGLDepth|oGLW2H|OnError|Orientation|PDC|PicBackCol|RandSeed|Reg64|RegEx|SMTPSSL|SQLColWidth|SQLDBC|SQLDel|SQLEmbedded|SQLFile|SQLNull|SQLWidth|StrWidth|SubClassMode|TrueColor|WinProc)"|\WHTMLWin\(\s*?"(GetBusy|GoBack|GoForward|GoHome|GoSearch|Navigate|Refresh|Stop)"|\WImageList\(\s*?"(Add|AddIcon|GetIcon)"|\WJson\(\s*?"(AddBool|AddList|AddNumber|AddObject|AddString|Count|GetBool|GetList|GetNumber|GetObject|GetString|Hash|Name|NewList|Text|Type|Value|Write)"|\WMidi\(\s*?"(Close|Open|OutShort|Play|Read|Write)"|\WMove\(\s*?"(ArrToList|FileToList|HandleToList|ListToArr|ListToFile|ListToHandle|ListToMem|ListToStr|MemToList|StrToList)"|\WoGL\(\s*?"(2D|API|BitmapFont|BlendMode|Clear|Color|CreateXPGL|Cuboid|Cylinder|DeleteList|DeleteTexture|Disk|Done|Draw|DrawList|DrawXPGL|EndList|EndTest|ErrorString|Fog|GetTextureBmp|Init|LoadTextureBmp|LoadXPGL|LoadXPGLData|Locate|Move|Origin|OutlineFont|PartialDisk|Pop|PosMode|Print|Push|Pyramid|Quad|Rotate|SaveXPGLData|Scale|SetName|Show|Sphere|StartList|StartTest|TestMouse|TestXY|Texture|Triangle|Tube|UseXPGL|XPGLCount|XPGLObjType|XPGLType)"|\WProcess\(\s*?"(GetWindowPID|Kill|Resume|SetPriority|Suspend)"|\WRes\(\s*?"(AddRes|AddStrings|Change|Get|GetStrings|Info|Load|Save|Size)"|\WRTF\(\s*?"(LoadRTF|LoadText|SaveRTF|SaveText)"|\WSet\(\s*?"(ASMMode|AutoPaint|CallConv|CharSet|dbMemoWidth|DebugMode|Decimals|Errorlevel|Escape|FastMode|FileMode|GridBoxTitle|HashDel|HashListDel|HashMode|ListDel|LogFile|MenuBackCol|MenuBorderCol|MenuFont|MenuIconSize|MenuTextCol|MessageMode|MoveListMode|NumWidth|oGLDepth|oGLW2H|OnError|Orientation|PDC|PicBackCol|RandSeed|Reg64|RegEx|SMTPSSL|SQLColWidth|SQLDBC|SQLDel|SQLEmbedded|SQLFile|SQLNull|SQLWidth|StrWidth|SubClassMode|TrueColor|WinProc)"|\WSMTP\(\s*?"(GetFolders|GetHeaders|GetMail|SendFile|SendList|SendMail|SendRaw)"|\WToolbar\(\s*?"(AddButton|AddTextButton|CheckButton|DeleteButton|EnableButton|InsertButton|InsertTextButton|IsChecked|Separator|ShowButton)"|\WTrayIcon\(\s*?"(Add|Delete|Msg|SetIcon|SetTip)"|\WTreeView\(\s*?"(DeleteItem|Expand|GetParam|GetParent|GetSelected|InsertItem|Select|SetChildren|SetItemImage|SetParam)")


    wurde durchgetestet und funktioniert.


    Aber selbst als Datei eingelesen, klappt es nicht


    :wacko:

  • Hast Du auch folgenden Satz aus der XProfan-Hilfe zu RegEx berücksichtigt:
    "Auch Reguläre Ausdrücke kennen Ersatzzeichen. Normalerweise werden diese, wie auch Ersatzzeichen in XProfan-Strings, mit dem "\" eingeleitet. Um aber die Übersicht zu wahren und eine Inflation der Backslashes zu vermeiden, habe ich für Reguläre Ausdrücke in XProfan die Tilde "~" als Escapezeichen gewählt. "


    Gruß
    Roland

    (Intel Duo E8400 3,0 GHz / 4 GB RAM / 250 GB HDD / ATI Radeon HD4770 512 MB / Windows Vista - ausgemustert zum Verkauf)
    AMD Athlon II X2 2,9 GHz / 8 GB RAM / 500 + 1000 GB HDD / ATI Radeon 3000 (onboard) / Windows 10(64) - XProfan X4


    http://www.xprofan.de

  • Zeile 18


    Die Inflation hätte ich hingenommen.
    Über das Einlesen der RegEx-Ausdrücke aus einer (INI) Datei kann man das recht elegant umgehen.


    Evtl. habe ich da auch selbst Mist gebaut. Ich werde das in der kleinen Variante lassen.
    Trotzdem stimmt etwas nicht.


    Da wird einfach nicht alles gefunden.


  • Nun ja. Hier werden ausnahmsweise die Anführungszeichen benötigt.
    Es geht ja um Container("Unterfunktion", wo es benötigt wird.


    Bei den anderen Sequenzen benötige ich aber auch die Zeichenklassen; die nutzen den Backslash.
    Da kann ich dann ja mit "~" direkt ersetzen.


    Ich schau mal...