Laden...

Bestimmten Textblock löschen

Erstellt von TommyGER vor 13 Jahren Letzter Beitrag vor 13 Jahren 1.363 Views
T
TommyGER Themenstarter:in
14 Beiträge seit 2010
vor 13 Jahren
Bestimmten Textblock löschen

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

Gelöschter Account
vor 13 Jahren

hierfür ist Regex optimal. Siehe: [Artikel] Regex-Tutorial

T
TommyGER Themenstarter:in
14 Beiträge seit 2010
vor 13 Jahren

Danke dir, ich werd es mir durchlesen 😃

T
TommyGER Themenstarter:in
14 Beiträge seit 2010
vor 13 Jahren

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

49.485 Beiträge seit 2005
vor 13 Jahren

Hallo TommyGER,

verwende .+ statt ..

herbivore

916 Beiträge seit 2008
vor 13 Jahren

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...

T
TommyGER Themenstarter:in
14 Beiträge seit 2010
vor 13 Jahren

Danke euch für die Antworten 🙂

Ich werde mich dann mal belesen 😉