Killingspree
Bloody Newbie
|
Hey Leute; ich bin jetzt schon relativ weit mit meinem C++ Editor, er kann schon Text erstellen und speichern bzw. Laden. was ich jetzt allerdings noch suche ist eine Möglichkeit, den geladenen Text zu bearbeiten und danach wieder zu speichern.. Wäre sehr nett wenn ihr mir helfen könntet...
Danke
|
that
ModeratorHoffnungsloser Optimist
|
Was ist jetzt die Frage?
|
repi
Addicted
|
was ich jetzt allerdings noch suche ist eine Möglichkeit, den geladenen Text zu bearbeiten und danach wieder zu speichern.. Danke das evtl.?
|
Killingspree
Bloody Newbie
|
Richtig, aber damits offiziell dasteht : Meine Frage wäre jetzt: Wie kann ich einen geladenen Text bearbeiten und danach wieder speichern?
Bearbeitet von Killingspree am 23.02.2008, 22:55
|
that
ModeratorHoffnungsloser Optimist
|
Deine Frage ergibt noch immer keinen Sinn.
Du hast also einen Editor geschrieben, mit dem man einen Text erstellen, speichern und laden kann.
Wo ist jetzt genau dein Problem, die Funktionen in der anderen Reihenfolge aufzurufen? Welche Art von Hilfe erwartest du von uns bei einem Problem, das einige 1000 Codezeilen umfasst?
Poste mal deinen Sourcecode und konkrete Fragen dazu.
|
quilty
Ich schau nur
|
Wär mal interessant zu erfahren in welcher Form du den Text lädst, wie du ihn im Speicher hältst und ob du überhaupt schon den Cursor positionieren kannst ...
quilty
|
Hansmaulwurf
u wot m8?
|
Zumindest sollte man wissen, in welcher Form du speicherst, damit es einen Sinn hat, zu fragen wie man es dann wieder aufrufen kann.. Wär aber sehr interresant, wenn du den Code hier posten könntest =)
|
Killingspree
Bloody Newbie
|
Also danke schonmal für die Hilfe.. Es ist ein äußerst einfacher Editor ohne GUI... Also hier der Source code: #include <iostream>
#include <fstream>
#include <stdlib.h>
#include <string>
using namespace std;
char Pfad[100];
char Text[10000];
int SL;
int main(){
int Zahl1;
cout << ("|---------------------------------------------------------|\n");// Willkommensscreen Anfang
cout << ("|-----------------------Willkommen------------------------|\n");
cout << ("|--------------------------beim---------------------------|\n");
cout << ("|-----------------------einfachsten-----------------------|\n");
cout << ("|------------------------Texteditor-----------------------|\n");
cout << ("|-------------------------der Welt------------------------|\n");
cout << ("|-----------------------------------(c) by Killingspree---|\n\n\n"); //Willkommensscreen Ende
cout << ("Willst du eine Datei \n[1]Erstellen und Speichern\noder\n[2]Laden\n\n");
cin >> Zahl1;
cin.clear(); //damit nicht durchgelaufen wird
cin.ignore(256, '\n');
cout << "Enter druecken" << endl;
cin.get();
if(Zahl1==1){
cout <<("Gib bitte ein wo die Datei gespeichert werden soll. z.B. C:/Windows/text.txt\n");
cin.getline(Pfad,sizeof(Pfad)); //Pfadabfrage
cout <<("Pfad erfolgreich eingelesen!\nBitte gib jetzt deinen text ein.\n");
cin.getline(Text,sizeof(Text)); //Textabfrage
cout <<("Texterfolgreich eingelesen, bitte warten waehrend er gespeichert wird...\n");
ofstream dateiausgabe; //----Dateispeicherprozess Anfang
dateiausgabe.open(Pfad);
dateiausgabe << Text << endl;
dateiausgabe.close();//Dateispeicherprozess Ende
cout << ("Erfolgreich gespeichert, vielen Dank fuer das benutzen dieses Programms.\n\n\n\n");
}
else{
if (Zahl1==2);{
cout << ("Gib den Pfad der zu oeffnenden Datei ein. z.B. C:/Windows/Text.txt\n\n");
cin.getline(Pfad,sizeof(Pfad));
cout << ("Pfad erfolgreich eingelesen!\nBitte warte waehrend die Datei geoeffnet wird...\n\n");
ifstream in(Pfad);
string line;
while(getline(in,line)) cout << line << endl;
}
}
system("PAUSE");
}
Wie könnt ich jetzt den in "line" eingelesenen Text bearbeiten....
|
pong
Addicted
|
Das ist kein Editor das ist eine simple Ein/Ausgabe
Ich würde mir an deiner Stelle mal allg. Programmiergrundlagen aneignen
pong
|
that
ModeratorHoffnungsloser Optimist
|
Wie könnt ich jetzt den in "line" eingelesenen Text bearbeiten.... Kommt drauf an was du vorhast. Soll man irgendwann mehr als eine Zeile eingeben können? Willst du ein GUI oder Textmodus? Reicht es, einzelne Zeilen editieren zu können, oder willst du mit dem Cursor rauf und runterfahren können? Mit dem Sprachumfang von Standard-C++ kann man leider überhaupt keinen Editor programmieren, weil man dazu zumindest den Cursor am Bildschirm positionieren können muss - und das gibts im Standard nicht, weil es auf jeder Plattform anders funktioniert (bzw. manche Plattformen nichtmal einen Bildschirm oder einen Cursor haben). Du brauchst also eine Library, die derartige Funktionen zur Verfügung stellt. Damit ergibt sich die erste wichtige Frage: Auf welcher Plattform soll das Ding laufen, und welchen Compiler verwendest du? Erwarte nicht, dass ein einfacher Fullscreen-Editor im Textmodus unter 500 Zeilen kommt, wenn du alles selbst programmieren willst. Du könntest dir natürlich auch eine Library suchen, die einen fertigen Editor eingebaut hat, dann musst du nur mehr das Menü und das Dateihandling rundherum schreiben. Ist aber auch nicht einfach.
|
Killingspree
Bloody Newbie
|
@pong: Danke für die aufbauenden Worte -.- @that: Ich will keine GUI, das ist mir echt noch etwas zu happig. Am besten wäre es wenn man den gesamten eingelesenen Text editieren könnte.. Es soll unter Windows laufen und Dev C++ ist mein Compiler... Wo könnte ich eine solche Library finden?...
Vielen Dank schonmal das du mich nicht gleich als noob abgestempelt hast =D
|
that
ModeratorHoffnungsloser Optimist
|
Es soll unter Windows laufen und Dev C++ ist mein Compiler... Wo könnte ich eine solche Library finden?... Zum Beispiel im Windows-API: http://msdn2.microsoft.com/en-us/library/ms682073.aspxUm die Funktionen aufrufen zu können, brauchst du ein #include <windows.h> - das sollte bei MinGW dabei sein. Den Cursor positioniert man dann mit der Funktion SetConsoleCursorPosition. Die hat leider etwas unhandliche Parameter, also solltest du das in eine Funktion packen, z.B. so: void GoToXY(short x, short y)
{
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
|
gue
Addicted
|
Schau dir mal ncurses bzw. pdcurses an. Auf Wikipedia findet man Links zu Tutorials etc.
Übrigens hast du einen Fehler bei deinem if-else: Lass das 2. if einfach weg, der Block wird sowieso ausgeführt (du hast danach einen Strichpunkt).
|
Killingspree
Bloody Newbie
|
Okay danke schonmal, werd mich da jetzt ein bissal reinlesen, ich poste dann das ergebnis =D
Bearbeitet von Killingspree am 24.02.2008, 12:24
|