Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

problem mit dem schreiben und lesen bei einer datei

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Feenfleisch



Anmeldungsdatum: 11.08.2005
Beiträge: 15

BeitragVerfasst am: 11.08.2005, 23:05    Titel: problem mit dem schreiben und lesen bei einer datei Antworten mit Zitat

hallo,

ich habe ein paar kleine problem:
(1) ich müßte den inhalt einer ganz normalen textdatei in eine variable einlesen
(2) wenn ich das ganze kram in ascii umgewandelt habe (das ist erledigt) wieder in die datei schreiben und dabei das alte überschreiben.

mein problem hierbei ist, dass mit schreiben habe ich hinbekommen, nur wenn ich den text aus ascii zurückumwandeln komme ich nie auf den ursprungtext zurück. es scheint mir auch das mehr zeichen dazu gekommen sind, obwohl ich eigentlich zeichen für zeichen umgewandelt und in einen string wieder zusammengefügt habe. zudem wenn ich ich den text direkt im programm in einem string variable packe klappt es prima. irgendwo mit der datei scheint es sehr zu harken

vielleicht hat jemand eine idee. vielen dank im voraus und ich hoffe ich habe euch nicht all zu sehr verwirrt zwinkern

erich
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 11.08.2005, 23:12    Titel: Antworten mit Zitat

Hallo.

Code:
'Lesen einer Datei
INPUT "Dateiname: ", d$
OPEN d$ FOR BINARY ACCESS READ AS #1
Inhalt$ = SPACE$(LOF(1))
Get #1,,Inhalt$
CLOSE #1
NeuerInhalt$ = MeineFunctionZumErsetzen(Inhalt$)
Kill d$
OPEN d$ FOR BINARY ACCESS WRITE AS #1
PUT #1,,NeuerInhalt$
CLOSE #1
PRINT "Die alte Datei wurde durch die neue Fassung ersetzt. :)"
SLEEP


Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Feenfleisch



Anmeldungsdatum: 11.08.2005
Beiträge: 15

BeitragVerfasst am: 11.08.2005, 23:18    Titel: Antworten mit Zitat

vielen vielen dank lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 12.08.2005, 16:58    Titel: Antworten mit Zitat

Nur noch ne kleine Frage zu den Zeilen:
Code:
Inhalt$ = SPACE$(LOF(1))
Get #1,,Inhalt$

Hier wird die gesamte Datei auf einmal eingelesen. Strings können in FB bis zu 2GB lang sein. Gibt es bei GET evtl irgendwelche einschränkungen, abgesehen von dieser 2GB-Grenze der 32bit-Prozessoren?

Danke!
Have a nice day
Ciao
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 12.08.2005, 17:08    Titel: Antworten mit Zitat

Nicht dass ich wüsste. lächeln Kannst es aber doch mal probieren, indem du eine 1,95GB große Datei mit einer Schleife anlegst und sie dann auf einmal einliest. zwinkern
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Dusky_Joe



Anmeldungsdatum: 07.01.2005
Beiträge: 1007
Wohnort: Regensburg/Oberpfalz

BeitragVerfasst am: 12.08.2005, 17:26    Titel: Antworten mit Zitat

Ist das bei 400MHz und einer 8 Jahre bzw. einer 2 Jahre alten Festplatte zu empfehlen?

Und wieso ausgerechnet 1.95GB?
Der Integerbereich geht doch bis 2 ^ 31 - 1, und das sollte genau 1 Byte weniger sein als 2GB...oder?

Schön, dich in der Mailing-List zu haben!
_________________
fully biological degradable

Once, the big wave arrives, you've got two ways, you can go:
Either, you ride it, or you don't do.
But, if you don't ride, you'll never know wether you'd have gone wet.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 12.08.2005, 18:10    Titel: Antworten mit Zitat

Hallo.

1.95GB hab ich jetzt einfach so gesagt, weil ich nicht wusste, ob es mit exakt 2GB (2048MB) noch reibungslos klappt. Daher hab ich dir etwas da drunter empfohlen. zwinkern Natürlich hängt die mögliche Datenmenge auch davon ab, wie viel Speicher du hast. Du solltest also auf >2GB virtuellen Speicher (phys. RAM + Auslangerungsdatei) kommen.

Ich habs eben die Probe auf's Exempel gemacht. Der Speicherbedarf nimmt immer wieder ab und zu, jedoch bei jeder Zunahme wieder ein bisschen mehr. Das Diagramm zeigt eine Art Jojo-Effekt. Siehe hier:


Der Versuchsquellcode ist links abgebildet. Ob man den String von der Platte liest oder einfach so erzeugt, spielt ja keine Rolle, um den maximalen Stringspeicherplatz herauszufinden.

Bei mir kam aber nach schätzungsweise 30 Sekunden eine Exception "[...]Der Vorgang written konnte nicht ausgeführt werden[...]". Und ich hab 1GB DDR-RAM gesteckt und eine nochmal 1,5x so große Auslagerungsdatei. Von daher sind die 2GB wohl nicht praktisch schaffbar. Und das Ganze hat noch einen Nebeneffekt: Mein PC ist jetzt 486er-like langsam... grinsen

Und die Mailinglist werd ich jetzt auch mal ein bisschen verfolgen, was da so los ist. lächeln

Viele Grüße!
Sebastian
_________________

Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz