 |
Das deutsche QBasic- und FreeBASIC-Forum Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
|
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
Autor |
Nachricht |
B12f13
Anmeldungsdatum: 17.09.2011 Beiträge: 4
|
Verfasst am: 17.09.2011, 17:43 Titel: Qbasic mit Excel? |
|
|
Hi @ all,
ich bin noch ein Anfänger auf dem Gebiet Qbasic.
Ich hab mich schon ein bisschen infomiert, finden aber keine Antwort auf meine Frage.
Ich hab ein Qbasic Programm geschrieben, wo eine Excel datei erstellt wird.
Code: |
'-- Datei schreiben --
CLS
SCREEN (12)
OPEN "c:\xxx\xxx\desktop\xxx-Messung.xls" FOR OUTPUT AS #1
PRINT "XXX 1 Links"
WRITE #1, "XXX 1 Links"
INPUT "XY -> "; name$
WRITE #1, "XY -> ", name$
CLOSE #1
'
'--- Datei lesen ---
OPEN "c:\xxx\xxx\desktop\XXX-Messung.xls" FOR INPUT AS #1
INPUT #1, t$
CLOSE #1
PRINT
PRINT "Du hast Folgendes eingegeben: "; t$
SLEEP
END
|
Nun möchte ich wissen, ist es möglich das man einzelne Felde von Excel in Qbasic anspricht bzw. bestimmt z.b. A2 dann D2 ... usw.?
Also das ich ein Format habe und nicht das alles untereinander steht.
MFG
B12f13
 |
|
Nach oben |
|
 |
MalteF
Anmeldungsdatum: 04.12.2008 Beiträge: 44
|
Verfasst am: 18.09.2011, 12:10 Titel: |
|
|
Naja das ist nun nicht gerade ne Excel-datei. Im Prinzip schreibst du dir damit ne ganz normale textdatei der du die endung .xls gibst
und dort schreibst du kleine strings rein, von denen allerdings nur du weißt, dass sie Felder einer Tabellenkalkulation darstellen sollen.
In deiner Datei werden die einfach der reihe nach gespiechert, wie du sie dann nachher in einer schönen tabelle darstellen kannst ist deine sache...
hoffe ich hab halbwegs verstanden was du meintest. |
|
Nach oben |
|
 |
SpionAtom
Anmeldungsdatum: 10.01.2005 Beiträge: 395
|
Verfasst am: 18.09.2011, 12:29 Titel: CSV - Datei |
|
|
Hallo
Direkt ne Excel-Datei kann man nicht so einfach erstellen.
Was allerdings geht ist eine CSV-Datei.
http://de.wikipedia.org/wiki/CSV_(Dateiformat)#Beispiel
Excel kann CSV-Datei problemlos öffnen. _________________ Inzwischen gehöre ich auch zu den BlitzBasicern. Also verzeiht mir, wenn mir mal ein LOCATE 100, 100 oder dergleichen rausrutscht. |
|
Nach oben |
|
 |
28398
Anmeldungsdatum: 25.04.2008 Beiträge: 1917
|
Verfasst am: 18.09.2011, 13:29 Titel: |
|
|
QBasic und Excel kannste vergessen, schon mit ein paar mehr Werten haste ja die 640K voll
Was aber durchaus geht ist via COM+ unter Freebasic die entspr. Schnittstellen zu nutzen. Ist aber ziemlich Pain-in-the-ass, mit VC++ oder direkt .NET wird sowas doch erheblich einfacher. |
|
Nach oben |
|
 |
B12f13
Anmeldungsdatum: 17.09.2011 Beiträge: 4
|
Verfasst am: 18.09.2011, 14:09 Titel: Thank |
|
|
Hi
jop vielen dank für die Antworten ich werd mal schauen, ob ich eine Lösung find.
Vielleicht probier ich das ganze mal mit VC++.
MFG |
|
Nach oben |
|
 |
MOD Fleißiger Referenzredakteur

Anmeldungsdatum: 10.09.2007 Beiträge: 1003
|
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 18.09.2011, 14:20 Titel: CSV statt XLS verwenden |
|
|
Hallo,
wie SpionAtom schon schreibt: Mit so einfachen Mitteln lässt sich leider keine richtige Excel-XLS-Datei erzeugen. Wenn du in Excel eine einfache Tabelle anlegst und die XLS-Datei anschließend in Notepad (Editor) oder einem Hexeditor öffnest, wirst du zig Kilobyte an Sonderzeichen sehen. Das Excel-Format ist also viel komplizierter als Plain-Text.
Was aber gut möglich ist und deshalb in dem Zusammenhang eigentlich immer das Mittel der Wahl ist, ist CSV. CSV steht für Comma-Separated Values und beschreibt ein universelles Datenaustauschformat. Das Format ist so einfach aufgebaut, dass es sich von Hand in einem Texteditor schreiben lässt. Auch das Schreiben und Lesen aus QBasic heraus ist ganz einfach möglich. Das Beste aber ist: Excel und OpenOffice Calc können diese CSV-Dateien sehr gut weiterverarbeiten; sie können direkt in der Tabellenkalkulation geöffnet werden.
Leg z.B. mal eine Datei mit dem folgenden Inhalt an...
Code: | Messpunkt A;17.09.2011;1001
Messpunkt B;17.09.2011;1100
Messpunkt A;18.09.2011;1234
Messpunkt B;18.09.2011;1277 |
...und gib ihr die Dateiendung CSV (also z.B. "Testdaten.csv" als Dateiname). Diese Datei lässt sich direkt in Excel öffnen wie eine XLS-Datei. Excel kann solche Dateien übrigens auch speichern ("Speichern unter" und dann CSV als Dateityp auswählen).
Das CSV-Format, das Excel verwendet, sieht so aus:
Code: | A1;B1;C1;D1
A2;B2;C2;D2
... |
Die Spalten werden durch ein Semikolon voneinander getrennt, die Zeilen durch einen Zeilenumbruch. Natürlich sind auch mehr als 4 Spalten möglich.
Zitat: | Vielleicht probier ich das ganze mal mit VC++. |
In MSVC++ stellt sich das Problem ganz genauso. Eine andere Programmiersprache zu verwenden, ändert an dem komplizierten Excel-Dateiformat rein gar nichts.
Die MS-Office-Dateiformate sind eben sehr komplex und nicht leicht zu implementieren. So kompliziert, dass selbst die Macher von OpenOffice keine 100%ige Kompatibilität dazu erreichen konnten. Von daher würde ich das XLS-Format umgehen und stattdessen lieber auf das viel einfachere CSV setzen, das Excel genauso gut öffnen kann.
Für Java gibt es übrigens Apache POI. Das Projekt hat zum Ziel, MS Office Dateien durch eigene Java-Programme lesbar und schreibbar zu machen. In diesen Bibliotheken steckt enorm viel Arbeit und Knowhow. Soetwas "mal eben" selber auf die Beine zu stellen, ist wohl kaum machbar.
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
B12f13
Anmeldungsdatum: 17.09.2011 Beiträge: 4
|
Verfasst am: 18.09.2011, 14:57 Titel: mhhh.. |
|
|
Jop CSV ist glaub ich die beste Lösung.
Nun stellt sich die Frage wie lautet der Befehl bei Qbasic,
wenn ich jetzt will das es in A2, D2 oder D3 das drin steht, was ich eingetippt habe?
Code: |
INPUT "XY -> "; name$
WRITE #1, "XY -> ", name$ |
Und vielleicht noch eine Frage
Gibt es eine möglichtkeit, wenn das jetzt nicht (wie oben gefragt) klappt
Das man die Datei in 2 Spalten teilt. Also ein Befehl das ein Break oder sowas gemacht wird (wie bei html).??
Code: |
-------- ---------
-------- ---------
-------- ---------
-------- ---------
-------- ---------
-------- ---------
|
P.s. Nicht gleich schimpfen, ANFÄNGER
MFG |
|
Nach oben |
|
 |
Sebastian Administrator

Anmeldungsdatum: 10.09.2004 Beiträge: 5969 Wohnort: Deutschland
|
Verfasst am: 18.09.2011, 15:10 Titel: |
|
|
Hallo,
einen Befehl, um gleich in die x-te Spalte zu schreiben, gibt es nicht. Aber das ist trotzdem ganz einfach zu machen. Du stellst so viele Semikolons voran, wie du Spalten am Anfang überspringen willst. Indem du eine leere Zeile ausgibst, wird die Zeile auch in Excel übersprungen.
Beispiel:
Code: | Open "test.csv" For Output As #1
Print #1, ""
Print #1, ";;;Hier 4. Spalte;Hallo"
Print #1, ";;Welt"
Close #1 |
Der Code erstellt eine CSV-Datei im Arbeitsverzeichnis deines Programms. Wenn du diese test.csv mit Excel öffnest, stellst du fest, dass die 1. Zeile leer ist und die Inhalte in der 2. Zeile erst in der 4. Spalte (D2) beginnen.
Das folgende Beispiel demonstriert auch, wie du voneinander abgesetzte Spalten erzeugen kannst:
Code: | Open "test2.csv" For Output As #1
Print #1, "Vokabelliste"
Print #1, ""
Print #1, "Apfel;;;apple"
Print #1, "Banane;;;banana"
Print #1, "Kirsche;;;cherry"
Print #1, "Pflaume;;;plum"
Close #1 |
In Excel geöffnet sieht das dann so aus:
Bild zum Vergrößern anklicken
Viele Grüße!
Sebastian _________________
Die gefährlichsten Familienclans | Opas Leistung muss sich wieder lohnen - für 6 bis 10 Generationen! |
|
Nach oben |
|
 |
|
|
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.
|
|