Hallo Zusammen
Ich benötige einige kleine Tipps wie ich dieses Projekt am besten angehen soll. Ich würde gerne eine Datei ( Textdatei ) in meine Konsole einlesen, diese dort bearbeiten und danach den geänderten Text wieder abspeicher. Sozusagen ein ganz einfacher Editor einfach in einer Konsolenanwendung.
Wie gehe ich da am besten vor? Ist es aufwendig so ein Programm zu schreiben, kann es leider nicht genau abschätzen!
Danke + Gruss
Datei in Konsole einlesen, dort bearbeiten und abspeichern
> Am einfachsten ist es sicher mit dem EditorGadget. Allerdings ist dort die
> Anzahl Zeichen auf 32000 beschränkt.
nope. Die Anzahl der Zeichen ist mit ein paar Tricks unbegrenzt:
http://www.purebasic.fr/german/viewtopic.php?t=6341
Grüße ... Kiffi
> Anzahl Zeichen auf 32000 beschränkt.
nope. Die Anzahl der Zeichen ist mit ein paar Tricks unbegrenzt:
http://www.purebasic.fr/german/viewtopic.php?t=6341
Grüße ... Kiffi
Hi,
Nein, ich meine nicht direkt den Batch Editor! Ich würde einfach gerne meine Textfiles in der Konsole bearbeiten! Sozusagen mein eigener Editor!
Scheint aber nicht ganz so einfach zu sein, wie ich mir das gedacht habe!
Hm, 32000 Zeichen würden schon reichen! Ist dies mit Editor Gadget einfach zu realisieren?
Nein, ich meine nicht direkt den Batch Editor! Ich würde einfach gerne meine Textfiles in der Konsole bearbeiten! Sozusagen mein eigener Editor!

Hm, 32000 Zeichen würden schon reichen! Ist dies mit Editor Gadget einfach zu realisieren?
Ein EditorGadget hat 32767 Zeichen, kann man aber sehr leichtZero_Cool hat geschrieben:Hi,
Nein, ich meine nicht direkt den Batch Editor! Ich würde einfach gerne meine Textfiles in der Konsole bearbeiten! Sozusagen mein eigener Editor!
Scheint aber nicht ganz so einfach zu sein, wie ich mir das gedacht habe!
Hm, 32000 Zeichen würden schon reichen! Ist dies mit Editor Gadget einfach zu realisieren?
hochsetzen wenn man es braucht (kiffis link).
Einen kleinen Editor damit zu schreiben sollte auch fuer Anfaenger
leicht zu schaffen sein , was man bei einem ConsolenEditor nicht
sagen kann.
Beispiel : (Falls du ueberhaupt nichts mit Windows machen wolltest , auch nicht schlimm

Code: Alles auswählen
Declare Load()
Declare SaveAs()
Declare Save()
Declare New()
Global File.s = ""
Define cx.l = 640
Define cy.l = 480
Define Style.l = #WS_SYSMENU|#WS_MAXIMIZEBOX|#WS_MINIMIZEBOX|#WS_SIZEBOX
Define hwnd.l = OpenWindow(0,#PB_Ignore,#PB_Ignore,cx,cy,"Unbekannt",Style)
SmartWindowRefresh(0,#true)
CreateGadgetList(hwnd)
hEdit = EditorGadget(0,0,0,cx,cy)
If CreateMenu(0, hwnd)
MenuTitle("Project")
MenuItem(1, "New" +Chr(9)+"Ctrl+O")
MenuItem(2, "Open" +Chr(9)+"Ctrl+O")
MenuItem(3, "Save" +Chr(9)+"Ctrl+S")
MenuItem(4, "Save as"+Chr(9)+"Ctrl+A")
MenuItem(5, "Close" +Chr(9)+"Ctrl+C")
EndIf
Repeat
uMsg = WaitWindowEvent()
If uMsg = #PB_Event_SizeWindow
ResizeGadget(0,0,0,WindowWidth(0),WindowHeight(0)-MenuHeight())
Continue
EndIf
If uMsg = #PB_Event_Menu
Select EventMenu()
Case 1 ; new
New()
Case 2 ; open
Load()
Case 3 ; save
Save()
Case 4 ; save as
SaveAs()
Case 5
End
EndSelect
Continue
EndIf
Until uMsg = #WM_CLOSE
Procedure SaveAs()
Protected Buffer.s = ""
File = SaveFileRequester("",File,"Text (*.txt)|*.txt;*.ini|PureBasic (*.pb)|*.pb|Alle Dateien (*.*)|*.*",0)
If File
If FileSize(File) >= 0
Select MessageRequester("Achtung !","Datei ueberschreiben ?",#PB_MessageRequester_YesNo)
Case #PB_MessageRequester_No
ProcedureReturn
EndSelect
EndIf
Buffer = GetGadgetText(0)
IF CreateFile(0,File)
WriteData(0,@Buffer,len(Buffer))
CloseFile(0)
SetWindowTitle(0,File)
Else
MessageRequester("Achtung","Datei konnte nicht gespeichert werden.")
ProcedureReturn
EndIf
EndIf
EndProcedure
Procedure Save()
Protected Buffer.s = ""
If File = ""
SaveAs()
ProcedureReturn
EndIf
Buffer = GetGadgetText(0)
IF CreateFile(0,File)
WriteData(0,@Buffer,len(Buffer))
CloseFile(0)
Else
MessageRequester("Achtung","Datei konnte nicht gespeichert werden.")
ProcedureReturn
EndIf
EndProcedure
Procedure Load()
Protected Buffer.s = ""
File = OpenFileRequester("","","Text (*.txt)|*.txt;*.ini|PureBasic (*.pb)|*.pb|Alle Dateien (*.*)|*.*",0)
If File
If ReadFile(0,File)
Buffer = space(lof(0))
ReadData(0,@Buffer,lof(0))
CloseFile(0)
SetGadgetText(0,Buffer)
SetWindowTitle(0,File)
EndIf
EndIf
EndProcedure
Procedure New()
File = ""
SetGadgetText(0,"")
SetWindowTitle(0,"Unbekannt")
EndProcedure
-
- Beiträge: 17389
- Registriert: 10.11.2004 03:22
ich hab mich mit konsolenanwendungen noch nicht so wirklich beschäftigt, aber...
gibt es da nen CLS-befehl?
einen rudimentären Editor from-the-scratch zu programmieren ist eigentlich in keiner oberfläche ein problem.
für den DX-screen fände ich es recht einfach, von daher wüsste ich nicht, wo bei der konsole die besondere schwierigkeit liegen soll.
ich bin halt von früher einfache oberflächen gewöhnt, der ganze windows-krempel fällt mir schwerer.
gibt es da nen CLS-befehl?
einen rudimentären Editor from-the-scratch zu programmieren ist eigentlich in keiner oberfläche ein problem.
für den DX-screen fände ich es recht einfach, von daher wüsste ich nicht, wo bei der konsole die besondere schwierigkeit liegen soll.
ich bin halt von früher einfache oberflächen gewöhnt, der ganze windows-krempel fällt mir schwerer.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Der Weise weiß, dass er ein Narr ist.