<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[RichEdit1 solang Strings löschen, bis Schlüsselwort gefunden]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>also ich habe ein Programm, was einen Datensatz bearbeitet, d.h ab Zeile 15 löscht er jede 2te Zeile, bis in irgendeiner Zeile mal &quot;M113&quot; steht!</p>
<p>Leider endet es in einer endlosschleife....</p>
<p>Fehler wird wohl sein, das ich nicht richtig suche , bzw was anderes beim suchen und dann schleifenabbruch</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
int StartPos=0;
int EndPos=RichEdit1-&gt;Text.Length()-StartPos;
FoundAt1 = RichEdit1-&gt;FindTextA(&quot;M113&quot;,StartPos,EndPos,TSearchTypes()&lt;&lt;stMatchCase);  //erstmal prüfen, ob schlüssel überhaupt vorhanden

if(FoundAt1 != -1)  //wenn vorhanden, dann gehtz los mit löschen der zeilen ab zeile 16
{
int i=16;
while(RichEdit1-&gt;Lines-&gt;Count&gt;0)
 {
 int StartPos=0;
 int EndPos=RichEdit1-&gt;Lines-&gt;Strings[i].Length()-StartPos;
 int FoundAt = RichEdit1-&gt;FindTextA(&quot;M113&quot;,StartPos,EndPos,TSearchTypes()&lt;&lt;stMatchCase);
 if(FoundAt == FoundAt1)  //dachte mir, wenn er bei jeder zeile sucht, und dann findet, und position stimmt, hört er auf, position kann ja aber nicht stimmen, da zeilen gelöscht werden...
   break;
 RichEdit1-&gt;Lines-&gt;Delete(i);
 i++;
 }

Button1-&gt;Enabled=false;
enable=false;  

}
else
 ShowMessage(&quot;Datentyp nicht passend, Schlüssel M113 nicht gefunden&quot;);
}
</code></pre>
<p>wie könnte ich das am besten machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/123014/richedit1-solang-strings-löschen-bis-schlüsselwort-gefunden</link><generator>RSS for Node</generator><lastBuildDate>Sun, 26 Jul 2026 23:09:37 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/123014.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 12 Oct 2005 09:39:19 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to RichEdit1 solang Strings löschen, bis Schlüsselwort gefunden on Wed, 12 Oct 2005 09:39:19 GMT]]></title><description><![CDATA[<p>Hallo Leute,</p>
<p>also ich habe ein Programm, was einen Datensatz bearbeitet, d.h ab Zeile 15 löscht er jede 2te Zeile, bis in irgendeiner Zeile mal &quot;M113&quot; steht!</p>
<p>Leider endet es in einer endlosschleife....</p>
<p>Fehler wird wohl sein, das ich nicht richtig suche , bzw was anderes beim suchen und dann schleifenabbruch</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
int StartPos=0;
int EndPos=RichEdit1-&gt;Text.Length()-StartPos;
FoundAt1 = RichEdit1-&gt;FindTextA(&quot;M113&quot;,StartPos,EndPos,TSearchTypes()&lt;&lt;stMatchCase);  //erstmal prüfen, ob schlüssel überhaupt vorhanden

if(FoundAt1 != -1)  //wenn vorhanden, dann gehtz los mit löschen der zeilen ab zeile 16
{
int i=16;
while(RichEdit1-&gt;Lines-&gt;Count&gt;0)
 {
 int StartPos=0;
 int EndPos=RichEdit1-&gt;Lines-&gt;Strings[i].Length()-StartPos;
 int FoundAt = RichEdit1-&gt;FindTextA(&quot;M113&quot;,StartPos,EndPos,TSearchTypes()&lt;&lt;stMatchCase);
 if(FoundAt == FoundAt1)  //dachte mir, wenn er bei jeder zeile sucht, und dann findet, und position stimmt, hört er auf, position kann ja aber nicht stimmen, da zeilen gelöscht werden...
   break;
 RichEdit1-&gt;Lines-&gt;Delete(i);
 i++;
 }

Button1-&gt;Enabled=false;
enable=false;  

}
else
 ShowMessage(&quot;Datentyp nicht passend, Schlüssel M113 nicht gefunden&quot;);
}
</code></pre>
<p>wie könnte ich das am besten machen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890391</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890391</guid><dc:creator><![CDATA[Oh_oh]]></dc:creator><pubDate>Wed, 12 Oct 2005 09:39:19 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit1 solang Strings löschen, bis Schlüsselwort gefunden on Wed, 12 Oct 2005 10:25:42 GMT]]></title><description><![CDATA[<p>schon mal mit dem debugger schritt fuer schritt dein programm durchgegangen und die belegung der einzelnen variablen angeschaut, speziell wenn die abbruchbedingung greifen soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890424</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 12 Oct 2005 10:25:42 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit1 solang Strings löschen, bis Schlüsselwort gefunden on Wed, 12 Oct 2005 10:35:53 GMT]]></title><description><![CDATA[<p>habs jetzt so geaändert, jetzt löscht er, und bricht auch ab, leider hört er kurz vor ende auf, noch zeilen zu löschen:</p>
<pre><code class="language-cpp">void __fastcall TForm1::Button1Click(TObject *Sender)
{
int StartPos=0;
int EndPos=RichEdit1-&gt;Text.Length()-StartPos;
FoundAt1 = RichEdit1-&gt;FindTextA(&quot;M113&quot;,StartPos,EndPos,TSearchTypes()&lt;&lt;stMatchCase);
if(FoundAt1 != -1)
{
int i=16;
int StartPos1=0;
while(RichEdit1-&gt;Lines-&gt;Count&gt;0)
 {
 i++;
 int EndPos=0;
 StartPos1=StartPos1+RichEdit1-&gt;Lines-&gt;Strings[i-1].Length()+1;
 EndPos=StartPos1+RichEdit1-&gt;Lines-&gt;Strings[i].Length();
 int FoundAt = RichEdit1-&gt;FindTextA(&quot;M113&quot;,StartPos1,EndPos,TSearchTypes()&lt;&lt;stMatchCase);

 //ShowMessage(FoundAt);  //debuggerzwecke
 if(FoundAt != -1)
   {
   //RichEdit1-&gt;Lines-&gt;Delete(i);   //TIPP 1, erklärung, siehe ganz unten
   break;
   }
 RichEdit1-&gt;Lines-&gt;Delete(i);

 }

Button1-&gt;Enabled=false;
enable=false;  

}
else
 MessageBoxA(0,&quot;Dateityp kann nicht verwendet werden, Schlüssel M113 nicht gefunden&quot;,&quot;Inkompatibler Dateityp&quot;,MB_OK|MB_ICONWARNING);
}
</code></pre>
<p>ACHTUNG, so sieht rohdatei aus:</p>
<pre><code class="language-cpp">0 BEGIN PGM TEST MM
1 ; DATEI : TEST.h
2 ; UNDEFINIERT D=0.00
3 ; WANDSTAERKE=0.00 AUFMASS=0.00 ZUSTELLUNG=0.00 PENDELN SPITZE
4 TOOL CALL 0 Z S0
5 CYCL DEF 7.0 NULLPUNKT
6 CYCL DEF 7.1 X+0,000
7 CYCL DEF 7.2 Y+0,000
8 CYCL DEF 7.3 Z+0,000
9 CYCL DEF 8.0 SPIEGELN
10 CYCL DEF 8.1
11 CYCL DEF 10.0 DREHUNG
12 CYCL DEF 10.1 ROT +0,000
13 CYCL DEF 11.0 MASSFAKTOR
14 CYCL DEF 11.1 SCL 1,000
15 M112 T0.05 A15      //ab hier jede 2te zeile löschen
16 L X+240.000 Y+100.000 Z+0.000 F0 M03
17 L X+240.000 Y+100.000 Z+40.000   //weg
18 L X+254.000 Y+100.000 Z+0.000
19 L X+254.000 Y+100.000 Z+40.000  //weg etc...
20 L X+268.000 Y+100.000 Z+0.000
21 L X+268.000 Y+100.000 Z+40.000
22 L X+282.000 Y+100.000 Z+0.000
23 L X+282.000 Y+100.000 Z+40.000
24 L X+296.000 Y+100.000 Z+0.000
25 L X+296.000 Y+100.000 Z+40.000
26 L X+310.000 Y+100.000 Z+0.000
27 L X+310.000 Y+100.000 Z+40.000
28 L X+324.000 Y+100.000 Z+0.000
29 L X+324.000 Y+100.000 Z+40.000
30 L X+338.000 Y+100.000 Z+0.000
31 L X+338.000 Y+100.000 Z+40.000
32 L X+352.000 Y+100.000 Z+0.000
33 L X+352.000 Y+100.000 Z+40.000
34 L X+366.000 Y+100.000 Z+0.000
35 L X+366.000 Y+100.000 Z+40.000
36 L X+380.000 Y+100.000 Z+0.000
37 L X+380.000 Y+100.000 Z+40.000
38 L X+394.000 Y+100.000 Z+0.000
39 L X+394.000 Y+100.000 Z+40.000
40 L X+408.000 Y+100.000 Z+0.000
41 L X+408.000 Y+100.000 Z+40.000
42 L X+422.000 Y+100.000 Z+0.000
43 L X+422.000 Y+100.000 Z+40.000
44 L X+436.000 Y+100.000 Z+0.000
45 L X+436.000 Y+100.000 Z+40.000
46 L X+450.000 Y+100.000 Z+0.000
47 L X+450.000 Y+100.000 Z+40.000
48 L X+240.000 Y+100.000 Z+0.000 F0 M03
49 L X+240.000 Y+100.000 Z+40.000
50 L X+254.000 Y+100.000 Z+0.000
51 L X+254.000 Y+100.000 Z+40.000
52 L X+268.000 Y+100.000 Z+0.000
53 L X+268.000 Y+100.000 Z+40.000
54 L X+282.000 Y+100.000 Z+0.000
55 L X+282.000 Y+100.000 Z+40.000
56 L X+296.000 Y+100.000 Z+0.000
57 L X+296.000 Y+100.000 Z+40.000
58 L X+310.000 Y+100.000 Z+0.000
59 L X+310.000 Y+100.000 Z+40.000
60 L X+324.000 Y+100.000 Z+0.000
61 L X+324.000 Y+100.000 Z+40.000  //weg
62 L X+338.000 Y+100.000 Z+0.000   //die bleibt als letzt stehen
48 M113   //hier aufhören
49 M30
50 END PGM TEST MM
</code></pre>
<p>leider sieht mein ergebniss so aus...</p>
<pre><code class="language-cpp">0 BEGIN PGM TEST MM
1 ; DATEI : TEST.h
2 ; UNDEFINIERT D=0.00
3 ; WANDSTAERKE=0.00 AUFMASS=0.00 ZUSTELLUNG=0.00 PENDELN SPITZE
4 TOOL CALL 0 Z S0
5 CYCL DEF 7.0 NULLPUNKT
6 CYCL DEF 7.1 X+0,000
7 CYCL DEF 7.2 Y+0,000
8 CYCL DEF 7.3 Z+0,000
9 CYCL DEF 8.0 SPIEGELN
10 CYCL DEF 8.1
11 CYCL DEF 10.0 DREHUNG
12 CYCL DEF 10.1 ROT +0,000
13 CYCL DEF 11.0 MASSFAKTOR
14 CYCL DEF 11.1 SCL 1,000
15 M112 T0.05 A15     //wunderbar, ab hier fängt er an
16 L X+240.000 Y+100.000 Z+0.000 F0 M03
18 L X+254.000 Y+100.000 Z+0.000   //super
20 L X+268.000 Y+100.000 Z+0.000
22 L X+282.000 Y+100.000 Z+0.000
24 L X+296.000 Y+100.000 Z+0.000
26 L X+310.000 Y+100.000 Z+0.000
28 L X+324.000 Y+100.000 Z+0.000
30 L X+338.000 Y+100.000 Z+0.000
32 L X+352.000 Y+100.000 Z+0.000
34 L X+366.000 Y+100.000 Z+0.000
36 L X+380.000 Y+100.000 Z+0.000
38 L X+394.000 Y+100.000 Z+0.000
40 L X+408.000 Y+100.000 Z+0.000
42 L X+422.000 Y+100.000 Z+0.000
44 L X+436.000 Y+100.000 Z+0.000
46 L X+450.000 Y+100.000 Z+0.000
48 L X+240.000 Y+100.000 Z+0.000 F0 M03
50 L X+254.000 Y+100.000 Z+0.000
52 L X+268.000 Y+100.000 Z+0.000
54 L X+282.000 Y+100.000 Z+0.000
56 L X+296.000 Y+100.000 Z+0.000
57 L X+296.000 Y+100.000 Z+40.000    //bis hier her, denn die dürfte ni stehen
58 L X+310.000 Y+100.000 Z+0.000
59 L X+310.000 Y+100.000 Z+40.000   //die au ni
60 L X+324.000 Y+100.000 Z+0.000
61 L X+324.000 Y+100.000 Z+40.000   //die au ni
62 L X+338.000 Y+100.000 Z+0.000
48 M113          //abbrechen tut er wieder richtig
49 M30
50 END PGM TEST MM
</code></pre>
<p>und zu dem Tipp 1 im Quellcode, wenn ich diese Zeile reinnehme dann nimmt er die 57 auch noch raus, logisch!<br />
woran könnte das liegen??<br />
arghl</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890435</guid><dc:creator><![CDATA[Oh_oh]]></dc:creator><pubDate>Wed, 12 Oct 2005 10:35:53 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit1 solang Strings löschen, bis Schlüsselwort gefunden on Wed, 12 Oct 2005 10:48:14 GMT]]></title><description><![CDATA[<p>hast du das gemacht, was ich geschrieben habe? ja? was ist dabei rausgekommen?<br />
schon mal was von <strong>Pos()</strong> gehört?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890449</guid><dc:creator><![CDATA[Sunday]]></dc:creator><pubDate>Wed, 12 Oct 2005 10:48:14 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit1 solang Strings löschen, bis Schlüsselwort gefunden on Wed, 12 Oct 2005 10:57:54 GMT]]></title><description><![CDATA[<p>naja, abbrechen tut er ja, aber mit dem Pos() hab ich noch nich gearbeitet!<br />
Wie funktioniert das?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890458</guid><dc:creator><![CDATA[Oh_oh]]></dc:creator><pubDate>Wed, 12 Oct 2005 10:57:54 GMT</pubDate></item><item><title><![CDATA[Reply to RichEdit1 solang Strings löschen, bis Schlüsselwort gefunden on Wed, 12 Oct 2005 11:01:16 GMT]]></title><description><![CDATA[<p>lol</p>
<pre><code class="language-cpp">if(RichEdit1-&gt;Lines-&gt;Strings[i].Pos(&quot;M113&quot;)&gt;0)
   {
   break;
   }
RichEdit1-&gt;Lines-&gt;Delete(i);
}
</code></pre>
<p>glaube so gehtz...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/890463</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/890463</guid><dc:creator><![CDATA[Oh_oh]]></dc:creator><pubDate>Wed, 12 Oct 2005 11:01:16 GMT</pubDate></item></channel></rss>