Hallo zusammen,
und zwar arbeite ich seit 2 jahren an einem Programm.
Dieses Programm öffnet eine .gfx datei (Beinhaltet bestimmten text) und
hat bis jetzt 1a funktioniert.
Nun möchte ich eine neue Funktion einbauen, bekomme dies aber nicht wirklich hin.
Ich würde mich über jede Hilfe freuen.
Und zwar gehts darum:
Per Button möchte ich ihm sagen das er alles was ab
"GFXELEMENTID: 210" steht löscht. Aber bei der nächsten "GFXELEMENTID:" aufhört.
Wie hier: "GFXELEMENTID: 160"
Leider geht das nicht das ich ihm sage er soll die Zeilen einzeln löschen,
da die Variablen sich immer verändert.
Das einzigste was konstant bleibt ist: GFXELEMENTID: 210.
In der Richtextbox steht folgender Text:
TimeSpan: 100.000000
GFXELEMENTID: 210
Name: Unnamed16
SrcBlend: 5
DestBlend: 2
RepeatCount: 1
RepeatDelay: 0
TexFile: ¹\Ñr)z_td.dds
BindEle:
ZEnable: 1
MatchGrnd: 0
GroundHeight: 0
TexRow: 1
TexCol: 1
TexInterval: 50
Priority: 2
IsDummy: 0
DummyEle:
Warp: 0
TileMode: 1
TexSpeed: 0.010000
TexSpeed: 0.010000
UReverse: 0
VReverse: 0
UVExchg: 0
RenderLayer: 0
NoDownSample: 0
wNumber: 15
hNumber: 15
0.000000 2.694711 0.204784
dwColor: ffffff
fGridSize: 0.700000
fZOffset: 0.000000
StartTime: 0
KEYPOINTCOUNT: 1
InterpolateMode: 0
TimeSpan: -1
Position: 0.000000, 2.274758, 0.000000
Color: -16688072
Scale: 1.000000
Direction: 0.000000, 0.000000, 0.000000, 1.000000
Rad_2D: 0.000000
CtrlMethodCount: 0
GFXELEMENTID: 160
Name: Unnamed5
Ich bedanke mich 😃
mfg
hierfür ist Regex optimal. Siehe: [Artikel] Regex-Tutorial
Ich habe es mir jetzt mehrmals durchgelesen aber ich komme nicht drauf.
Habe einige Dinge probiert, aber es funktioniert nicht so wie es soll.
Habe es an etwas kleinem ausprobiert:
System.Text.RegularExpressions.Regex GFXcheck = new System.Text.RegularExpressions.Regex("CoGfxNum:\\s(?<CoGfxNum>..)");
if (GFXcheck.Match(richTextBox1.Text).Success)
{
label7.Text = GFXcheck.Match(richTextBox1.Text).Groups["CoGfxNum"].Value;
}
else { label7.Text = "0"; };
Eigentlich soll er alles was in der Zeile nach CoGfxNum: steht anzeigen.
Also nicht nur die ersten beiden falls die Zeile mal länger ist.
Aber irgendwie bin ich zu doof 🤔
?<CoGfxNum>.. sagt mir die ersten beiden und da is der hacken.
Er zeigt zb nicht an wenn da zb. 1 steht.
Und mit solchen übungen habe ich halt versucht mein oben genanntes problem zu lösen, aber ich komm ja selbst damit nicht klar >.<
Ich bedanke mich schonmal für ratschläge
Benutze am besten (so wie im Tutorial verlinkt) das On-the-fly Regex-Tester: Regex-Lab zum Austesten...
Hallo TommyGER,
verwende .+ statt ..
herbivore
Schau dir auch auf jeden Fall mal die Lookaheads and LookBehinds an, in deinem Fall vorallem die positiven. Tutorial
In Worten ist dein Regex ja denk ich in der Art.
Schau nach GFXELEMENTID: 210, anschließend jedes belibige Zeichen und schließe ab mit GFXELEMENTID.
Again what learned...