Programmzeilen am Anfang entfernen ?

Für allgemeine Fragen zur Programmierung mit PureBasic.
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

Programmzeilen am Anfang entfernen ?

Beitrag 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
Benutzeravatar
Mijikai
Beiträge: 754
Registriert: 25.09.2016 01:42

Re: Progarmmzeilen am Anfang entfernen ?

Beitrag 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
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Progarmmzeilen am Anfang entfernen ?

Beitrag 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 + "|"

my pb stuff..
Bild..jedenfalls war das mal so.
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Progarmmzeilen am Anfang entfernen ?

Beitrag 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.
Benutzeravatar
HeX0R
Beiträge: 2954
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Re: Progarmmzeilen am Anfang entfernen ?

Beitrag 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"
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

Re: Progarmmzeilen am Anfang entfernen ?

Beitrag 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
Nino
Beiträge: 1300
Registriert: 13.05.2010 09:26
Wohnort: Berlin

Re: Progarmmzeilen am Anfang entfernen ?

Beitrag 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.
Benutzeravatar
#NULL
Beiträge: 2235
Registriert: 20.04.2006 09:50

Re: Progarmmzeilen am Anfang entfernen ?

Beitrag von #NULL »

Ich habe es auch erst verstanden nachdem ich Mijikai's Antwort gelesen habe. :D
my pb stuff..
Bild..jedenfalls war das mal so.
funkheld
Beiträge: 636
Registriert: 31.12.2009 11:58

Re: Programmzeilen am Anfang entfernen ?

Beitrag von funkheld »

Es müssen alle Zeilennummern weg.

Danke.
Gruss
Benutzeravatar
DrShrek
Beiträge: 1970
Registriert: 08.09.2004 00:59

Re: Programmzeilen am Anfang entfernen ?

Beitrag von DrShrek »

Vielleicht noch den Titel in diesen Beitrag anpassen?
Würde bei einer Suche echt helfen ;-)
Siehste! Geht doch....?!
PB*, *4PB, PetriDish, Movie2Image, PictureManager, TrainYourBrain, ...
Antworten