Zum Inhalt springen

String abschneiden, aber wie?


Devilmarkus

Empfohlene Beiträge

Hallo zusammen,

Ich habe ein (kleineres) Problemchen:

Ich möchte einen Compiler basteln, welcher mir zunächst in einer Schleife die einzelnen Zeilen die "remarked" Inhalte herausschneiden soll.

Das Ganze soll ein Assembler werden.

Das "Remark" Zeichen ist also in diesem Fall das Semikolon ;

Nun versuche ich also, jede Zeile um den Text hinter diesem Semikolon herauszuschneiden. (Inkl. dem Semikolon natürlich)

Mein "Versuch" scheitert leider noch:

        for (int p = 0; p < line; p++){

            for (int i = 0; i < compiledLine[p].length(); i++){

                if (compiledLine[p].charAt(i) == 0x03B){

                    compiledLine[p] = compiledLine[p].substring(compiledLine[p].length()-i,compiledLine[p].length());

                    break;

                }

            }

        }
Was mache ich hier falsch? Beispiel: disass.png Dieses soll mein Assembler werden. Die gewünschte Ausgabe in den Compiler soll nun also wie folgt aussehen:
                




                ORG     &4000


                LD      DE,&1111                

                LD      DE,&1111                

                LD      DE,&1111                

                LD      DE,&0001                

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, Du hast Recht!

Wieso habe ich nicht gleich dran gedacht? *andiestirnpatsch*

So "zerstückel" ich nun meinen Code:

        for (int p = 0; p < line; p++) {

            compiledLine[p] = removeSpaces(compiledLine[p]);

            for (int i = 0; i < compiledLine[p].length(); i++) {

                if (compiledLine[p].charAt(i) == 0x03B) {

                    compiledLine[p] = compiledLine[p].substring(0, compiledLine[p].indexOf(";"));

                    break;

                }

            }

        }


        for (int p = 0; p < line; p++) {

            System.out.println("# " + compiledLine[p]);

        }
(Der letzte Loop ist nur zum Test. Das muss noch gegen den eigentlichen Compiler getauscht werden) Ausgabe:
# 

# 

# 

# 

# ORG &4000 

# 

# LD DE,&1111 

# LD DE,&1111 

# LD DE,&1111 

# LD DE,&0001 

.....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Denk mal über Deine For-Schleife mit charAt nach !

Returns the index within this string of the first occurrence of the specified character. If a character with value ch occurs in the character sequence represented by this String object, then the index of the first such occurrence is returned -- that is, the smallest value k such that:

this.charAt(k) == ch

is true. If no such character occurs in this string, then -1 is returned.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Habe es nun so:

        for (int p = 0; p < line; p++) {

            compiledLine[p] = removeSpaces(compiledLine[p]);

            int check = compiledLine[p].indexOf(";");

            if (check != -1)

                compiledLine[p] = compiledLine[p].substring(0, check);

        }

Ergebnis:

http://cpc-live.com/disass2.png

Man kann hier nun im unteren Fenster sehen, welcher Code an den eigentlichen Kompiler gesendet wird.

(Alle überflüssigen SPACE entfernt, ';' Remarks entfernt, Upper-Case usw...)

Bearbeitet von Devilmarkus
Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...