Hallo Leute! Ich habe folgendes Problem. Da ich einen Zeileneditor aus einer Übungsaufgabe erweitert habe, möchte ich nun die Funktion "backspace()" programmieren, was bedeutet, sobald ich auf die Rücktaste drücke, dass dann mein Text eben "backspace-typisch" ab Cursorposition in Richtung Zeilenanfang gelöscht wird. Wenn das Zeilenende erreicht ist, dann soll nix passieren (Cursor soll also nicht zurückspringen in die nächsthöhere Zeile). Nun sitze ich schon seit zwei Stunden an dem Problem, mein Kopf wird immer vernagelter und jetzt geht garnix mehr :( Könntet ihr mir bei der Umsetzung helfen? Ich habe die Funktion mal derweil so programmiert, allerdings funktioniert da garnichts. Ich schicke einmal die header-Datei und einmal die c-Datei. Vielen Dank!
ich habe mir den code ehrlich gesagt nicht sehr genau angeschaut (34kb!) aber .. du darfst eins nie vergessen .. ein algorithmus ist immer so einfach oder komplex, wie die eingesetzten Datenstrukturen. Ich vermisse bei dir eine durchdachte Datenstruktur. Das macht es dir so schwer festzustellten, wann eben die Zeile am Anfang steht.
Wo er recht hat, hat er recht. Außerdem sehe ich nicht so die besondere Nähe zu Mikrocontrollern; es sieht mehr nach Hausaufgabe aus.
Die Verwaltung der aktuellen Position ist wirklich ziemlich krank. Aber vielleicht geht ja sowas in der Art:
1 | void backspace( void ) |
2 | {
|
3 | if((cursor_x + first_char) > FIRST_COLUMN) |
4 | {
|
5 | cursor_left(); |
6 | delete_key(); |
7 | }
|
8 | }
|
JK schrieb: > Hat keiner mehr eine Idee?? Die einfachst mögliche. Du hast doch schon Hilfsfunktionen, die eine ganze Menge alleine können
1 | void backspace() |
2 | {
|
3 | cursor_left(); |
4 | delete_key(), |
5 | }
|
Das ist das übliche Verhalten von Backspace und nicht irgendwas mit löschen bis zum Zeilenende oder vom Zeileananfang oder dergleichen. > Wenn das Zeilenende erreicht ist, dann soll nix passieren > (Cursor soll also nicht zurückspringen in die nächsthöhere Zeile). Na dann frag halt ab, ob der Cursor schon am linken Rand ist. Ist doch alles da! Beitrag "Re: Problem mit "backspace"-Funktion" > Hat keiner mehr eine Idee?? Doch: Programmieren lernt man nicht, indem man andere seine Hausaufgaben machen lässt. Und Analyse von vorhandenem Code ist nun mal Teil davon. Hat man die Funktionsweise erst einmal analysiert und die Zusammenhänge herausgelesen (Hinweis: Papier und Bleistift und eine Skizze der Gegebenheiten sind ausgezeichnete Hilfsmittel) dann ist es nicht mehr schwer. Nur machen muss man das. Am besten selber.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.