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:

Qbasic mit Excel?

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



Anmeldungsdatum: 17.09.2011
Beiträge: 4

BeitragVerfasst am: 17.09.2011, 17:43    Titel: Qbasic mit Excel? Antworten mit Zitat

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

zwinkern
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MalteF



Anmeldungsdatum: 04.12.2008
Beiträge: 44

BeitragVerfasst am: 18.09.2011, 12:10    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
SpionAtom



Anmeldungsdatum: 10.01.2005
Beiträge: 395

BeitragVerfasst am: 18.09.2011, 12:29    Titel: CSV - Datei Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 18.09.2011, 13:29    Titel: Antworten mit Zitat

QBasic und Excel kannste vergessen, schon mit ein paar mehr Werten haste ja die 640K voll grinsen
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
Benutzer-Profile anzeigen Private Nachricht senden
B12f13



Anmeldungsdatum: 17.09.2011
Beiträge: 4

BeitragVerfasst am: 18.09.2011, 14:09    Titel: Thank Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 18.09.2011, 14:11    Titel: Antworten mit Zitat

Was FreeBASIC angeht, könnte man folgendes versuchen: http://forum.qbasic.at/viewtopic.php?t=6404
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sebastian
Administrator


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.09.2011, 14:20    Titel: CSV statt XLS verwenden Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
B12f13



Anmeldungsdatum: 17.09.2011
Beiträge: 4

BeitragVerfasst am: 18.09.2011, 14:57    Titel: mhhh.. Antworten mit Zitat

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 mit den Augen rollen
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 weinen weinen

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


Anmeldungsdatum: 10.09.2004
Beiträge: 5969
Wohnort: Deutschland

BeitragVerfasst am: 18.09.2011, 15:10    Titel: Antworten mit Zitat

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
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 QBasic. 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