Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Bestimmten Textblock löschen
TommyGER
myCSharp.de - Member



Dabei seit:
Beiträge: 14

Themenstarter:

Bestimmten Textblock löschen

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Gelöschter Benutzer

beantworten | zitieren | melden

hierfür ist Regex optimal. Siehe: [Artikel] Regex-Tutorial
TommyGER
myCSharp.de - Member



Dabei seit:
Beiträge: 14

Themenstarter:

beantworten | zitieren | melden

Danke dir, ich werd es mir durchlesen :)
private Nachricht | Beiträge des Benutzers
TommyGER
myCSharp.de - Member



Dabei seit:
Beiträge: 14

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4186

beantworten | zitieren | melden

Benutze am besten (so wie im Tutorial verlinkt) das On-the-fly Regex-Tester: Regex-Lab zum Austesten...
private Nachricht | Beiträge des Benutzers
herbivore
myCSharp.de - Experte

Avatar #avatar-2627.gif


Dabei seit:
Beiträge: 52329
Herkunft: Berlin

beantworten | zitieren | melden

Hallo TommyGER,

verwende .+ statt ..

herbivore
private Nachricht | Beiträge des Benutzers
rollerfreak2
myCSharp.de - Member

Avatar #avatar-3271.jpg


Dabei seit:
Beiträge: 928

beantworten | zitieren | melden

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.
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von rollerfreak2 am .
Again what learned...
private Nachricht | Beiträge des Benutzers
TommyGER
myCSharp.de - Member



Dabei seit:
Beiträge: 14

Themenstarter:

beantworten | zitieren | melden

Danke euch für die Antworten

Ich werde mich dann mal belesen
private Nachricht | Beiträge des Benutzers