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:

Werte aus Text-Datei einlesen..

 
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
Noah Panthenos



Anmeldungsdatum: 22.09.2015
Beiträge: 2

BeitragVerfasst am: 22.09.2015, 21:20    Titel: Werte aus Text-Datei einlesen.. Antworten mit Zitat

hallo liebe freebasic gemeinschaft!

vorerst:
dickes dankeschön, dass es diese community, also euch gibt!
ich habe auch schon des öfteren in der befehlsreferenz gestöbert und dabei viel, für mich brauchbares gefunden.

heute steh ich vor einem relativ simplen problem.
dennoch schaffe ich es nicht alleine.

zum problem:
ich möchte aus einer .txt - datei einlesen.

(es handelt sich dabei um eine liste mit verschiedenen werten, einige davon sind durch komma getrennt, andere beinhalten nur positive ganze zahlen, sowie wieder andere negative ganze zahlen.)

also beispielsweise:
...
7,8
-10,4
-15
...

soweit so gut:

Code:
cls
screen 9

dim as integer f = FREEFILE
open "orig.txt" for input as #f

print input(300, #f)


close #1
sleep
end



nun möchte ich _vor_ jeden wert ein "," einfügen und _nach_ jedem wert ein ";"

wie lässt sich dies realisieren?
außerdem möchte ich anschließend alles (inklusive "," und ";")
wiederum in eine neue .txt - datei schreiben.

ich bin noch am anfang mit meinem "freebasic"-latein, dementsprechend wäre ich für jegliche hilfe dankbar!

in, auf praktische lösung hoffender voraussicht!
DANKESCHÖN,

euer noah.
_________________
chur!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1279
Wohnort: Ruhrpott

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

Hallo Noah und willkommen im Forum! lächeln

Das Programm, das du suchst, könnte etwa so aussehen:
Code:
Cls
Screen 9

Dim As Integer fin = FreeFile
Open "orig.txt" For Input As #fin

Dim As Integer fout = FreeFile
Open "mod.txt" For Output As #fout

Dim As Integer wert

Do
   Input #fin, wert
   Print #fout, ",";wert;";"
Loop Until Eof(fin)

Print "OK"

Close
Sleep


Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Noah Panthenos



Anmeldungsdatum: 22.09.2015
Beiträge: 2

BeitragVerfasst am: 22.09.2015, 21:58    Titel: Antworten mit Zitat

hi grindstone,

vielen lieben dank, für die schnelle antwort.
sieht nicht schlecht aus, leider "übersieht" diese variante die kommazahlen und legt jedesmal eine neue zeile bei einem komma an..

also so:

orig.txt:

Code:
7,5
4,8
99
200,7
7,8
-10,4
-15
-13
-18,55
,9


mod.txt:

Code:
, 7;
, 5;
, 4;
, 8;
, 99;
, 200;
, 7;
, 7;
, 8;
,-10;
, 4;
,-15;
,-13;
,-18;
, 55;
, 0;
, 9;



EDIT:

wichtig zu erwähnen ist noch, dass es sich bei den kommazahlen der _originaldatei_ (nicht orig.txt, diese dient nur meinem versuch) um durch "." getrennte kommazahlen handelt.

bei den durch "." getrennten kommazahlen funktioniert die variante fast.
ausnahme: es wird von FB einfach aufgerundet..
_________________
chur!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1279
Wohnort: Ruhrpott

BeitragVerfasst am: 22.09.2015, 23:05    Titel: Antworten mit Zitat

Noah Panthenos hat Folgendes geschrieben:
leider "übersieht" diese variante die kommazahlen und legt jedesmal eine neue zeile bei einem komma an..
Das liegt daran, daß das Komma in Datensätzen standardmäßig als Trennzeichen dient, und Dezimalzeichen ist standardmässig ein Punkt.

So müsste es besser funktionieren:
Code:
Cls
Screen 9

Dim As Integer fin = FreeFile
Open "orig.txt" For Input As #fin

Dim As Integer fout = FreeFile
Open "mod.txt" For Output As #fout

Dim As String wert

Do
   Line Input #fin, wert
   Print #fout, ",";wert;";"
Loop Until Eof(fin)

Print "OK"

Close
Sleep


Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail 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