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:

Bestimmte Zeichen + ganzer Satz in externe Datei speichern?

 
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
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1048
Wohnort: Niederbayern

BeitragVerfasst am: 03.10.2012, 03:20    Titel: Bestimmte Zeichen + ganzer Satz in externe Datei speichern? Antworten mit Zitat

Gibt es eine Möglichkeit Sätze mit " " oder ' mit Freebasic in eine externe Datei (.txt/.ini) zu speichern?
Beispiel:

Code:
"Dies ist ein Testsatz!"
(Testsatz 2)


Solche Zeilen würde ich gerne mit den " " in eine .txt oder .ini Datei abspeichern. Solche Zeilen stehen im Quellcode drin und werden dann in eine Datei abgespeichert. Geht das irgendwie? Ich habe so das Gefühl, dass das wegen der " " nicht geht? verwundert

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.10.2012, 10:29    Titel: Antworten mit Zitat

Diese Frage kam schon öfter auf, aber zugegeben, zu sowas die Forensuche zu verwenden, ist nicht gerade erfolgsversprechend. Ein Blick in die Referenz hätte aber geholfen:

String
Ausrufezeichen
Write

Such dir die Methode aus, die dir am besten gefällt.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 03.10.2012, 12:40    Titel: Antworten mit Zitat

Hi ALWIM,

du könntest auch die CHR()-Funktion benutzen. Anhand eines numerisch gegebenen Char-Werts liefert die Funktion dieses Zeichen als String zurück.

Beispiel:
Code:
PRINT CHR(34); CHR(65); CHR(76); CHR(87); CHR(73); CHR(77); CHR(34)
SLEEP


Die Funktionen können auch mit schreibenden Dateioperationen benutzt werden:
Code:
DIM AS STRING Filename = "Alwim.txt"

PRINT "In die Textdatei >>" & Filename & "<< schreibe ich jetzt Folgendes:"
PRINT CHR(34); CHR(65); CHR(76); CHR(87); CHR(73); CHR(77); CHR(34)

DIM AS INTEGER f
f = FREEFILE

OPEN EXEPATH & "\" & Filename FOR OUTPUT AS #f
PRINT #f, CHR(34); CHR(65); CHR(76); CHR(87); CHR(73); CHR(77); CHR(34)
CLOSE #f

PRINT "Fertig. Taste druecken zum Beenden."
SLEEP


Der CHR()-Code für " ist 34, der fürs Hochkomma ' ist 39. Die Werte kannst du in einer ASCII-Tabelle ablesen.

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
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 03.10.2012, 14:02    Titel: Antworten mit Zitat

Escaping ist denke ich besser nachvollziehbar/lesbar und wird zur Kompilierungszeit erledigt, ob das bei Chr und Asc mit Konstanten auch der Fall ist, weiß ich nicht, aber wohl eher nicht so.

!"Peter sagte:\"Und so ward Saulus ein Paulus\""
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 03.10.2012, 14:22    Titel: Antworten mit Zitat

FBWiki hat Folgendes geschrieben:
When Chr is used with numerical constants or literals, the result is evaluated at compile-time, so it can be used in variable initializers.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
dreael
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 2529
Wohnort: Hofen SH (Schweiz)

BeitragVerfasst am: 03.10.2012, 21:47    Titel: Antworten mit Zitat

28398 hat Folgendes geschrieben:
Escaping ist denke ich besser nachvollziehbar/lesbar und wird zur Kompilierungszeit erledigt, ob das bei Chr und Asc mit Konstanten auch der Fall ist, weiß ich nicht, aber wohl eher nicht so.

MOD hat Folgendes geschrieben:
FBWiki hat Folgendes geschrieben:
When Chr is used with numerical constants or literals, the result is evaluated at compile-time, so it can be used in variable initializers.

Nur Chr() alleine genügt nicht, dasselbe wäre auch für "+" (das String-konkatinierende "+"!) notwendig, sonst würde aus einem
Code:
"Peter sagte:" + Chr(34) + "Und so ward Saulus ein Paulus" + Chr(34)

nur ein
Code:
"Peter sagte:" + !"\"" + "Und so ward Saulus ein Paulus" + !"\""

beim Compiler entstehen. Und "+" zur Laufzeit ist eine realitiv "teure" (=zeitintensive) Operation, weil ja jedesmal Speicher in der neuen Gesamtlänge alloziert und Inhalte umkopiert werden müssen.

Anspruchsvoll wird logischweise so etwas:
Code:
Dim p, g, c As String
c = "Der gewiefte " + p + " sagte:" + Chr(34) + "Hole mir noch den " + g + "!" + Chr(34)

=> Hier müsste der wirklich gut optimierende Compiler zuerst temporäre Klammer setzen können:
Code:
c = "Der gewiefte " + p + (" sagte:" + Chr(34) + "Hole mir noch den ") + g + ("!" + Chr(34))

=> Daraus müsste dann nach dem Zwischenschritt
Code:
c = "Der gewiefte " + p + (" sagte:" + !"\"" + "Hole mir noch den ") + g + ("!" + !"\"")

das Endergebnis
Code:
c = "Der gewiefte " + p + !" sagte:\"Hole mir noch den " + g + !"!\""

entstehen, welches mit der minimalen Anzahl dieser Umkopieroperationen beim "+" bei Variablen auskommt.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 03.10.2012, 22:22    Titel: Antworten mit Zitat

Naja dahin kommst du auch ohne Klammern, in dem du einfache Adjazenzregeln für den +-Operator definierst. Dafür muss der Compiler nicht sonderlich gut/schlau sein...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
RWK



Anmeldungsdatum: 04.07.2011
Beiträge: 44

BeitragVerfasst am: 04.10.2012, 11:54    Titel: Antworten mit Zitat

Code:
DIM AS STRING Filename = "Alwim.txt"
dim as string myText = "--==>>Dies ist das Haus vom Nikolaus<<==--"

PRINT "In die Textdatei >>" & Filename & "<< schreibe ich jetzt Folgendes:"
print
print """--==>>Dies ist das Haus vom Nikolaus<<==--"""
PRINT CHR(34) & myText & CHR(34)

DIM AS INTEGER f
f = FREEFILE

OPEN EXEPATH & "\" & Filename FOR OUTPUT AS #f
PRINT #f, """--==>>Dies ist das Haus vom Nikolaus<<==--"""
print #f, """" & myText & """"
CLOSE #f

PRINT "Fertig. Taste druecken zum Beenden."
SLEEP


Bitte macht dem Jung das doch nicht immer so schwer lächeln

Grüße
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 04.10.2012, 18:12    Titel: Antworten mit Zitat

Hier würde ich argumentieren bzw. argumentiere ich hier so, dass diese Anhäufung von Anführungszeichen u.U. noch schlechter lesbar ist als die CHR-Variante...

...ich behaupte also einfach mal, dass die Escape-Zeichen-Methode die sinnvollste ist... am besten lesbar und auch bei vielen anderen Sprachen verbreitet...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ThePuppetMaster



Anmeldungsdatum: 18.02.2007
Beiträge: 1839
Wohnort: [JN58JR]

BeitragVerfasst am: 04.10.2012, 21:05    Titel: Antworten mit Zitat

Ich behaupte das die " Variante die lesbarste version ist. Is ja schlisslich nicht so das man """"""""" schreibt, und dann extrapolieren muss, wie viele es denn Jetzt werden.


MfG
TPM
_________________
[ WebFBC ][ OPS ][ ToOFlo ][ Wiemann.TV ]
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 04.10.2012, 21:46    Titel: Antworten mit Zitat

print #f, """" & myText & """"
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 04.10.2012, 21:56    Titel: Antworten mit Zitat

Mod hatte doch schon die richtige Idee:
>>> Write
Code:
Dim As String myText = "--==>>Dies ist das Haus vom Nikolaus<<==--"

Print "In die Textdatei schreibe ich jetzt Folgendes:"
Print
Print Chr(34) & myText & Chr(34)
Write myText

Dim As Integer f = FreeFile

Open ExePath & "\Alwim.txt" For Output As #f
Write #f, "--==>>Dies ist das Haus vom Nikolaus<<==--"
Write #f, myText
Close #f
Print
Print "Fettich...."
Sleep

_________________
Warnung an Choleriker:
Dieser Beitrag kann Spuren von Ironie & Sarkasmus enthalten.
Zu Risiken & Nebenwirkungen fragen Sie Ihren Therapeuten oder Psychiater.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 05.10.2012, 00:00    Titel: Antworten mit Zitat

volta hat Folgendes geschrieben:
Mod hatte doch schon die richtige Idee:
>>> Write

Wir schlagen uns ja auch gerade darum, wie man am besten Anführungszeichen in Stringliterale schmuggelt! grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
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