Problemchen mit Writeline

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Kifferopa

Gast

Betreff: Problemchen mit Writeline

BeitragFr, März 04, 2005 16:26
Antworten mit Zitat
Writeline schreibt ja eine Zeile in eine Datei. Ich will aber eine bestehende Datei ergänzen! Und nicht den Inhalt überschreiben! Wie mache ich das?!? Very Happy Question

BladeRunner

Moderator

BeitragFr, März 04, 2005 16:39
Antworten mit Zitat
Benutzer-Profile anzeigen
OH -> filepos.
lesen, staunen, lernen Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Kifferopa

Gast

BeitragFr, März 04, 2005 18:25
Antworten mit Zitat
Mann, woher soll ich das wissen!?! In der OH stand nichts von Filepos. Ich meine unten, wenn ich writeline genommen hab. Aber danke! Very Happy
 

Kifferopa

Gast

BeitragFr, März 04, 2005 18:39
Antworten mit Zitat
Ein Problem: Wenn ich das so mache, dann schreibt er nur die letzte Zeile in die Datei und die anderen nicht. Als ob der SeekFile-Befehl nicht da wäre! FilePos ermittelt ja nur die Position von irgendetwas. Kann mir mal jemand ein Programm schreiben, das alle zwei Zeilen einen Text in eine Datei schreibt? Rolling Eyes

Code: [AUSKLAPPEN]

Datei = WriteFile("Nur ein Test.test")
SeekFile Datei,3
WriteLine Datei, "Die dritte Zeile(?)"
SeekFile Datei,5
WriteLine Datei, "Sollte jetz die Fünfte sein..."
SeekFile Datei,1
WriteLine Datei, "Die Erste? Oder fängt der hier auch mit null an?"
CloseFile Datei   
 

Michi

BeitragFr, März 04, 2005 19:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Aaaaalso:
wenn du mit Writeline einen String in eine datei speicherst, setzt er am Ende automatisch das Absatzzeichen.

Mit Seekfile kannst du aber keine Zeilenposition angeben, sondern BYTE-positionen!!!
Du schreibst also eine Zeile an die 3. Byte-Position. dann steht da:
Code: [AUSKLAPPEN]

    Die dritte Zeile(?)


wieso vier leerzeichen? ganz einfach: das erste ist Position 0
dann kommt die nächst Zeile an die 5te Position. das ist das "i"
Code: [AUSKLAPPEN]

    DiSollte jetz die Fünfte sein...


Dann an Pos 1:
Code: [AUSKLAPPEN]

 "Die Erste? Oder fängt der hier auch mit null an?"



Das einfachst ist, du schreibst einfach Zeile für Zeile aller der Reihe nach:
Code: [AUSKLAPPEN]

Datei = WriteFile("Nur ein Test.test")
WriteLine Datei, "Die Erste? Oder fängt der hier auch mit null an?"
WriteLine Datei, ""
WriteLine Datei, "Die dritte Zeile(?)"
WriteLine Datei, ""
WriteLine Datei, "Sollte jetz die Fünfte sein..."
CloseFile Datei
end
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968
Code: [AUSKLAPPEN]

   __
<_/__\_> <--- die Wayne-Zeichnung
 

Kifferopa

Gast

BeitragFr, März 04, 2005 19:21
Antworten mit Zitat
Achso! Seekfile ist für Leerzeichen! Stimmt, darum war das...aha...aber ich wollte das eigentlich so: Ich habe eine Textdatei...der Inhalt:

Gugu

Gaga
alululah


bulahietsch!

Und nachher soll das so aussehen:

Gugu
kotschie
gaga
alululah
doof *hihi*

bulahietsch!


Aber ohne, dass ich das was schon drin stand nochmal schreibe!
Also, er soll ja nur ab ´ner bestimmten Zeile anfangen zu schreiben, aber eben nicht das schon gescriebene ÜBERSCHREIBEN Rolling Eyes

Seoman

BeitragFr, März 04, 2005 20:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Kifferopa hat Folgendes geschrieben:
Kann mir mal jemand ein Programm schreiben, das ...



Vorsicht, mit solchen Sätzen macht man sich hier sehr schnell unbeliebt...

mfg
Seoman
In Australien...

Projekte sind zur Zeit wieder eingefroren und auf Designlevel zurueckgestuft... Generalueberholungen notwendig Wink
 

Kifferopa

Gast

BeitragFr, März 04, 2005 20:04
Antworten mit Zitat
Wieso?

Artemis

BeitragFr, März 04, 2005 20:09
Antworten mit Zitat
Benutzer-Profile anzeigen
weil wir hier zum helfen sind, und nicht zum code schreiben
und weil man alles selber schreiben sollte -> du lernst!!!
 

Apocalyptic

BeitragFr, März 04, 2005 20:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Nimm OpenFile() statt WriteFile. Begründung sollte in der Onlinehilfe stehen. Und um ans Ende der Datei zu kommen, benutze das:Code: [AUSKLAPPEN]
SeekFile FileStream,FileSize("C:\Blubb.txt")
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]
  • Zuletzt bearbeitet von Apocalyptic am Fr, März 04, 2005 20:21, insgesamt 2-mal bearbeitet
 

Kifferopa

Gast

BeitragFr, März 04, 2005 20:15
Antworten mit Zitat
Apocalyptic hat Folgendes geschrieben:
Nimm OpenFile() statt WriteFile. Begründung sollte in der Onlinehilfe stehen. Und um ans Ende der Datei zu kommen, benutze das:Code: [AUSKLAPPEN]
SeekFile File,FileSize("C:\Blubb.txt")-1


Ja, das hilft mir aber wenig. Ich nehme ja openfile aber was dann?
 

Apocalyptic

BeitragFr, März 04, 2005 20:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
Path$="C:\Blubb.txt"

; Datei erstellen und irgendwas reinschreiben:

File=WriteFile(Path)

WriteLine File,"Bla."

CloseFile File

; Und nochmal öffnen und was hintendranhängen

File=OpenFile(Path)

SeekFile File,FileSize(Path)

WriteLine File,"Verstehst du jetzt?"

CloseFile(File)

ExecFile(Path)
Suum cuique

[ www.ffs-net.de.vu ] [ Raycaster ]

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragFr, März 04, 2005 20:39
Antworten mit Zitat
Benutzer-Profile anzeigen
Also soetwas wie insert,
Sowas habe ich schon mal hier gepostet glaube ich

Das war mit neuen Zeilen einfügen oder bestimmte Zeilen überschreiben
und Auslesen von bestimmten Zeilen!
Wenn Interesse besteht such ich mal meine HDD durch und poste das hier!
[BB2D | BB3D | BB+]
 

Kifferopa

Gast

BeitragSa, März 05, 2005 18:46
Antworten mit Zitat
Apocalyptic hat Folgendes geschrieben:
Code: [AUSKLAPPEN]
Path$="C:\Blubb.txt"

; Datei erstellen und irgendwas reinschreiben:

File=WriteFile(Path)

WriteLine File,"Bla."

CloseFile File

; Und nochmal öffnen und was hintendranhängen

File=OpenFile(Path)

SeekFile File,FileSize(Path)

WriteLine File,"Verstehst du jetzt?"

CloseFile(File)

ExecFile(Path)


Hmm...das ist gut...aber ich verstehe immer noch nicht wie ich das "Verstehst du jetzt?" in die dritte Zeile setze, also, dass in der 2. nichts steht...
 

Michi

BeitragSa, März 05, 2005 20:02
Antworten mit Zitat
Benutzer-Profile anzeigen
entweder mit Writeline Datei, "" oder mit Writebyte Datei, 13 und danach Writebyte Datei, 10

das ergebnis ist das gleiche
zur Erläuterung:
die Bit-Folge 000000000000000000001010 000000000000000000001101 (=10 und danach 13 im Dezimalsystem)
wird von Microsoft Editor als Absatz interpretiert (Und von allen anderen Text-Verarbeitungsprogrammen glaub ich auch)

In der Datei selbst gibt es keine Absätze !!! Die gibt es nur im Editor!!! In der Datei stehen alle Zeichen als Bit-Folgen hintereinander!!!
folgender Text
Code: [AUSKLAPPEN]

Hallo,
&
Tschüss!

ist auf der Festplatte (als Dezimalzahlen):
Code: [AUSKLAPPEN]

72 97 108 108 111 130 13 10 38 13 10 84 115 99 104 252 115 115

du kanns es mal ausprobieren:
lass diese Zahlfolge mal Zahl für Zahl mit Writebyte in eine Datei eintragen und öffne diese dann mit dem editor.
Nur so nebenbei:
Code: [AUSKLAPPEN]

00000000000000000000000001001000    00000000000000000000000001100001    00000000000000000000000001101100    00000000000000000000000001101100    00000000000000000000000001101111    00000000000000000000000010000010    00000000000000000000000000001101    00000000000000000000000000001010    00000000000000000000000000100110    00000000000000000000000000001101    00000000000000000000000000001010    00000000000000000000000001010100    00000000000000000000000001110011    00000000000000000000000001100011    00000000000000000000000001101000    00000000000000000000000011111100    00000000000000000000000001110011    00000000000000000000000010011011

So sieht das Ganze als einzelne Bit's aus ^^ (natürlich hab ich die leerzeichen nur ergänzt, um immer 4 Bytes (= ein Buchstabe) zu kennzeichnen
Aber..Wozu soll er gut sein???
IBM-Ingeneur über die Idee des Mikroprozessors, 1968
Code: [AUSKLAPPEN]

   __
<_/__\_> <--- die Wayne-Zeichnung
 

Kifferopa

Gast

BeitragSa, März 05, 2005 20:43
Antworten mit Zitat
Ja, ja is ok. Danke für eure Hife. Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group