RichEdit Text bearbeiten...ich verzweifel
-
Hallo Leute,
ich hab schon so viel probiert...ich schaffs nich!
Problem: ich hab ne Datei, die ein spezielles format hat, und die soll bearbeitet werden!
Datei sieht so aus
Bearbeitungsschritte kommentiere ich in datei: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 soll jede 2 Zeile gelöscht werden 16 L X+240.000 Y+100.000 Z+0.000 F0 M03 17 L X+240.000 Y+100.000 Z+40.000 18 L X+254.000 Y+100.000 Z+0.000 19 L X+254.000 Y+100.000 Z+40.000 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 M113 //soll stehen bleiben 15 M112 T0.05 A15 //das auch 16 L X+240.000 Y+100.000 Z+0.000 F0 M03 //ab hier wieder jede 2te löschen 17 L X+240.000 Y+100.000 Z+40.000 18 L X+254.000 Y+100.000 Z+0.000 19 L X+254.000 Y+100.000 Z+40.000 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 M113 //ab hier alles stehen bleiben 49 M30 50 END PGM TEST MMwill keinen code, nur mal ne idee!
Die andren bekomm ich hin, nur die nich!
-
wie oft willst du denn das noch erklärt bekommen und wieder nicht verstehen?
http://www.c-plusplus.net/forum/viewtopic-var-t-is-123003-and-highlight-is-.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-123014-and-highlight-is-.html
http://www.c-plusplus.net/forum/viewtopic-var-t-is-123124-and-highlight-is-.htmlworan scheitert es denn?
schreibt doch mal in worten auf, wie das programm deiner meinung nach arbeiten soll.solang dateiende nicht erreicht lese zeile aus datei // ... ab hier du
-
ich mach da mal 3 kleine beispieldateien, die zeigen sollen
Datei 1 (funktioniert schon)
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 //soll stehen bleiben 17 L X+240.000 Y+100.000 Z+40.000 //soll gelöscht werden 18 L X+254.000 Y+100.000 Z+0.000 //soll stehen bleiben 19 L X+254.000 Y+100.000 Z+40.000 //... 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 M113 //hier wird Ende der Bahn markiert,muss stehen bleiben(danach KÖNNTE es aber weitergehen, wie unten gezeigt wird in Datei2) 26 M30 //hier wird Ende der Datei markiert 27 END PGM TEST MMDatei 2 (funktioniert bis zur ersten "Trennmarke", danach macht er mist)
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 //wieder ab hier löschen jede 2te zeile 16 L X+240.000 Y+100.000 Z+0.000 F0 M03 //bleiben 17 L X+240.000 Y+100.000 Z+40.000 //löschen 18 L X+254.000 Y+100.000 Z+0.000 //bleiben 19 L X+254.000 Y+100.000 Z+40.000 //... 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 M113 //wieder bis hierher, ende der bahn 24 M112 T0.05 A15 //aber da neue bahn folgt, wieder anfangen 25 L X+240.000 Y+100.000 Z+0.000 F0 M03 //bleiben 26 L X+240.000 Y+100.000 Z+40.000 //löschen 27 L X+254.000 Y+100.000 Z+0.000 //... 28 L X+254.000 Y+100.000 Z+40.000 29 L X+268.000 Y+100.000 Z+0.000 30 L X+268.000 Y+100.000 Z+40.000 31 L X+282.000 Y+100.000 Z+0.000 32 M113 //aufhören, ende der bahn 33 M30 //ende der datei 34 END PGM TEST MMDatei 3 (hab so eine noch nicht gemacht, könnte aber auch vorkommen)
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 //wieder ab hier löschen jede 2te zeile 16 L X+240.000 Y+100.000 Z+0.000 F0 M03 //bleiben 17 L X+240.000 Y+100.000 Z+40.000 //löschen 18 L X+254.000 Y+100.000 Z+0.000 //bleiben 19 L X+254.000 Y+100.000 Z+40.000 //... 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 M113 //wieder bis hierher, ende der bahn 24 M112 T0.05 A15 //aber da neue bahn folgt, wieder jede 2te löschen 25 L X+240.000 Y+100.000 Z+0.000 F0 M03 //bleiben 26 L X+240.000 Y+100.000 Z+40.000 //löschen 27 L X+254.000 Y+100.000 Z+0.000 //... 28 L X+254.000 Y+100.000 Z+40.000 29 L X+268.000 Y+100.000 Z+0.000 30 L X+268.000 Y+100.000 Z+40.000 31 L X+282.000 Y+100.000 Z+0.000 32 M113 //aufhören, ende der bahn 33 M112 T0.05 A15 //aber da neue bahn folgt, wieder jede 2te löschen 34 L X+240.000 Y+100.000 Z+0.000 F0 M03 //bleiben 35 L X+240.000 Y+100.000 Z+40.000 //löschen 36 L X+254.000 Y+100.000 Z+0.000 //... 37 L X+254.000 Y+100.000 Z+40.000 38 L X+268.000 Y+100.000 Z+0.000 39 L X+268.000 Y+100.000 Z+40.000 40 L X+282.000 Y+100.000 Z+0.000 41 M113 42 M30 //ende der datei 43 END PGM TEST MMsieht eigentlich ganz einfach aus...aber es ist schwieriger als gedacht....
sorry das ich das noch nciht so ganz kapiert habe, aber er macht irgendwie immer mist, entweder er löscht die falschen, löscht zuviele, bleibt in endlosschleife (wenn er ein ende ausversehen mit löscht)
-
string line; bool skip=false; while(getline(inFile,line) { //hier drin mußt du deine Eingabe auf die "Schlüsselwörter" überprüfen und //die Zeilen seit dem letzten "M112..." mitzählen if(!skip) outFile<<line<<'\n'; }Reicht dir das als Ansatz?
-
ja eigentlich schon, nur arbeite ich mit den funktionen von RichEdit!
Ich will ja nichtmal einen Code, sondern nur eine gute idee, für einen ansatz!