Seite 1 von 2

Programmzeilen am Anfang entfernen ?

Verfasst: 03.09.2019 21:03
von funkheld
Hallo, guten Tag.

Wie kann man bitte Programmzeilenl entfernen von den Programmen?
Ich habe mehrere solcher Programme.

Code: Alles auswählen

10 PROGRAM grafik;
   20 {$C-}
   30 {$L-}
   40 VAR mnloop, loop : integer;
   50     x, xa, y, ya : real;
   60     xx, yy, c    : real;
   70     a, b         : integer;
   80     ch           : char;  
   90 
  100 PROCEDURE mode(no : integer);
  110 BEGIN
  120   ra:=chr(no);
  130   user(#bc0e);
  140 END;
  150 
  160 PROCEDURE ink(ink, col1 : integer);
  170 BEGIN
  180   ra:=chr(ink);
  190   rb:=chr(col1);
  200   rc:=chr(col1);
  210   user(#bc32);
  220 END;
  230 
  240 PROCEDURE border(col : integer);
  250 BEGIN
  260   rb:=chr(col);
  270   rc:=chr(col);
  280   user(#bc38);
  290 END;
  300 
  310 PROCEDURE plot(x,y : integer);
  320 BEGIN
  330   rde:=x;
  340   rhl:=y;
  350   user(#bbea);
  360 END;
  370 
  380 PROCEDURE grapen(col : integer);
  390 BEGIN
  400   ra:=chr(col);
  410   user(#bbde);
  420 END;
  430 
  440 PROCEDURE move(x,y : integer);
  450 BEGIN
  460   rde:=x;
  470   rhl:=y;
  480   user(#bbc0);
  490 END;
  500 
  510 PROCEDURE draw(x,y : integer);
  520 BEGIN
  530   rde:=x;
  540   rhl:=y;
  550   user(#bbf6);
  560 END;
  570 
  580 FUNCTION rdkey : char;
  590 BEGIN
  600   user(#bb1b);
  610   rdkey:=ra;
  620 END;
  630 
  640 BEGIN
  650   mode(0);
  660   border(0);
  670   ink(0,0);
  680   FOR loop:=1 TO 15 DO
  690     ink(loop,loop+11);
  700   grapen(1);
  710   c:=1;
  720   a:=160;
  730   b:=100;
  740   x:=1;
  750   y:=1;
  760   xx:=0;
  770   yy:=0;
  780   move(round(x),round(y));
  790   REPEAT
  800    xa:=x; ya:=y;
  810    IF x<a THEN xx:=xx+0.025
  820     ELSE IF x>a THEN xx:=xx-0.025;
  830    IF y<b THEN yy:=yy+0.025
  840     ELSE IF y>b THEN yy:=yy-0.025;
  850    x:=x+xx; y:=y+yy;
  860    grapen(round(c));
  870    plot(round(xa),1);
  880    draw(round(x),round(y));
  890    plot(640-round(xa),1);
  900    draw(640-round(x),round(y));
  910    plot(round(xa),400);
  920    draw(round(x),400-round(y));
  930    plot(640-round(xa),400);
  940    draw(640-round(x),400-round(y));
  950    c:=c+0.0625;
  960    IF c=15.5 THEN c:=1;
  970   ch:=rdkey;
  980   mnloop:=ord(ch);
  990   UNTIL mnloop=252;
 1000  ink(1,26);
 1010  mode(2);
 1020 END.
Danke.
Gruss

Re: Progarmmzeilen am Anfang entfernen ?

Verfasst: 03.09.2019 21:33
von Mijikai
So müsste es gehen :)

- jede Zeile einlesen
- trimmen -> Trim()
- dann Alles bis bis zum ersten Space abscheiden -> FindString()
- evtl. nochmal trimmen
- fertig

Re: Progarmmzeilen am Anfang entfernen ?

Verfasst: 03.09.2019 23:19
von #NULL
Nicht sehr performant, aber dafür knapp:

Code: Alles auswählen

s.s = "  123 abc 123 deg;  "

s = LTrim(s)
While FindString("0123456789", Left(s, 1))
  s = Mid(s, 2, Len(s)-1)
Wend

Debug "|" + s + "|"


Re: Progarmmzeilen am Anfang entfernen ?

Verfasst: 03.09.2019 23:28
von Nino
funkheld hat geschrieben:Wie kann man bitte Programmzeilenl entfernen von den Programmen?
Ich habe mehrere solcher Programme.
Wie viele Zeilen willst du denn jeweils vom Anfang der Programme entfernen?
Und warum? Sie werden danach wohl kaum erwartungsgemäß funktionieren.

Re: Progarmmzeilen am Anfang entfernen ?

Verfasst: 03.09.2019 23:36
von HeX0R
Nino hat geschrieben:
funkheld hat geschrieben:Wie kann man bitte Programmzeilenl entfernen von den Programmen?
Ich habe mehrere solcher Programme.
Wie viele Zeilen willst du denn jeweils vom Anfang der Programme entfernen?
Und warum? Sie werden danach wohl kaum erwartungsgemäß funktionieren.
Ich bin ja froh, dass ich nicht der einzige bin, der bei der Fragestellung was völlig anderes verstanden hat (genau genommen war die Fragestellung auch tatsächlich völlig falsch).
Aber Mijikai und #Null haben offensichtlich ein Gespür dafür und die Antworten haben mich dann tatsächlich erleuchtet.

Es ging um:
"Wie entferne ich Zeilennummern am Anfang jeder Zeile"

Re: Progarmmzeilen am Anfang entfernen ?

Verfasst: 03.09.2019 23:48
von funkheld
Die Zeilennummer sollte weg. Habe es undeutlich geschrieben.

Das funktioniert wunderbar:
-------------------------
- jede Zeile einlesen
- trimmen -> Trim()
- dann Alles bis bis zum ersten Space abscheiden -> FindString()
-------------------------

Hier habe ich dann im File lmosiac.txt die Zeilen weg.

Code: Alles auswählen

Global text0.s,text.s,text1.s,text2.s,z.l,laenge.l

ReadFile(0, "d:\javacpc\pebi-pas\mosiac.txt")
CreateFile(1,"d:\javacpc\pebi-pas\lmosiac.txt")

While Eof(0) = 0
  text0=ReadString(0)
  text=LTrim(text0) 
  z=FindString(text, " ") 
  laenge=Len(text)
  text1=Right(text,laenge-z)
  text2=LTrim(text1) 
  WriteStringN(1,text2)
Wend

CloseFile(0)
CloseFile(1)
Danke.
Gruss

Re: Progarmmzeilen am Anfang entfernen ?

Verfasst: 03.09.2019 23:55
von Nino
HeX0R hat geschrieben:Es ging um:
"Wie entferne ich Zeilennummern am Anfang jeder Zeile"
Ach so! Das ist "ein bisschen" etwas anderes als das, was im ersten Posting formuliert wurde. :lol:
In dem Fall würde ich ja vor dem Entfernen der Zeilennummern erstmal prüfen, ob die eine oder andere nicht noch gebraucht wird (weil sie z.B. von Goto als Sprungziel verwendet wird).
funkheld hat geschrieben:Die Zeilennummer sollte weg. Habe es undeutlich geschrieben.
Du hast es nicht undeutlich geschrieben, du hast etwas völlig anderes geschrieben.

Re: Progarmmzeilen am Anfang entfernen ?

Verfasst: 04.09.2019 09:16
von #NULL
Ich habe es auch erst verstanden nachdem ich Mijikai's Antwort gelesen habe. :D

Re: Programmzeilen am Anfang entfernen ?

Verfasst: 04.09.2019 22:03
von funkheld
Es müssen alle Zeilennummern weg.

Danke.
Gruss

Re: Programmzeilen am Anfang entfernen ?

Verfasst: 05.09.2019 07:59
von DrShrek
Vielleicht noch den Titel in diesen Beitrag anpassen?
Würde bei einer Suche echt helfen ;-)