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:

such "data+read+restore" Ersatz

 
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
Löwenherz



Anmeldungsdatum: 25.08.2008
Beiträge: 86
Wohnort: auf einer sonnigen Insel :)

BeitragVerfasst am: 12.09.2012, 12:09    Titel: such "data+read+restore" Ersatz Antworten mit Zitat

hallo. Ich habe eine allgemeine Frage ob es zu dem Befehl "Data", "Read" und "Restore" eine Alternative gibt (z.B. Arrays). Weiß jemand einen Rat, wäre supernett. Ich versuche ein Freebasic Beispiel in eine andere Basicsprache zu übersetzen und der Befehl "Data" läßt sich z.B. nicht in einer Funktion oder SUB speichern und wenn ich "Restore" und "read" benutze separat dazu, dann muss immer "DATA" (String Konstanten) dabei sein.

kleines Code Beispiel

Code:

dim as long x,y
restore foo (was ist "foo"?)
read x
print x

restore bar
read x
print x

data 10,20
foo:
data 30,40
bar:
data "Hose", 2000


wäre gut wenn ich einen Tipp bekomme oder wie ein Freebasic Beispiel wie oben mit Array aussehen könnte (falls das überhaupt geht), danke!
grüße, frank
_________________
Das Leben ist wie eine Pralinenschachtel, man weiß nie, was dort drinnen für tolle wie böse Überraschungen stecken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 12.09.2012, 17:36    Titel: Antworten mit Zitat

Na wie wärs die Daten in seperaten Dateien zu speichern?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

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

etwa so:
Code:
Dim x(1 To 6) As Long ={10,20,30,40,Cvl("Hose"), 2000}

Print x(1)
Print x(2)
Print x(3)
Print x(4)
Print Mkl(x(5))
Print x(6)
Sleep
grinsen
_________________
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
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 110

BeitragVerfasst am: 12.09.2012, 22:48    Titel: Antworten mit Zitat

Oder so:
Code:

'PB/CC 6
#COMPILE EXE
#DIM ALL

FUNCTION PBMAIN () AS LONG

DIM x AS LONG, y AS LONG

DIM arr(1 TO 2) AS LONG
ARRAY ASSIGN arr() = 10, 20

DIM foo(1 TO 2) AS LONG
ARRAY ASSIGN foo() = 30, 40

DIM bar(1 TO 2) AS STRING
ARRAY ASSIGN bar() = "Hose", TRIM$(2000)

PRINT TRIM$(foo(2))

FOR x = 1 TO 2
    PRINT bar(x)
NEXT

WAITKEY$
END FUNCTION
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 12.09.2012, 23:25    Titel: Antworten mit Zitat

Ihr verascht mich doch! grinsen
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
volta



Anmeldungsdatum: 04.05.2005
Beiträge: 1876
Wohnort: D59192

BeitragVerfasst am: 13.09.2012, 10:16    Titel: Antworten mit Zitat

28398 hat Folgendes geschrieben:
Ihr verascht mich doch! grinsen

Ich würde dich nie zu Asche verarbeiten! vor lachen auf dem Boden rollen
_________________
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
Löwenherz



Anmeldungsdatum: 25.08.2008
Beiträge: 86
Wohnort: auf einer sonnigen Insel :)

BeitragVerfasst am: 13.09.2012, 18:57    Titel: Antworten mit Zitat

danke erst einmal allen für die tipps lächeln der restore Befehl macht mir noch Kopfzerbrechen. Hatte ein Codebeispiel gefunden wo es z.B. so ging..

Code:

...
fileread:
'statements... do certain things first of all here

restore fileread
'statements... do other things here



und ich versteh's nicht ganz wozu dieser "restore" Befehl gut ist (hier sollen die Reihenfolge der Daten zurückgesetzt werden soweit ich verstanden habe), habe es schon mit GOSUB und "Reset" versucht, aber das klappt nicht als Ersatz und ist einfach ein Test gewesen, der unsinnig ist zwinkern.

Die Idee mit Array und Daten einlesen finde ich im Moment viel besser. Danke bisweilen hierher lächeln
_________________
Das Leben ist wie eine Pralinenschachtel, man weiß nie, was dort drinnen für tolle wie böse Überraschungen stecken
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
HorstD



Anmeldungsdatum: 01.11.2007
Beiträge: 110

BeitragVerfasst am: 13.09.2012, 19:31    Titel: Antworten mit Zitat

Ohne DATA brauchst du kein RESTORE-
Zum Vergleich:
Code:

Mit DATA

...
DATA "x", "y", "z"
fileread:
DATA "A", "B", "C"
...
...
restore fileread
FOR i = 1 TO 3
    READ dat$
    PRINT dat$    ' A B C
NEXT

''''''''''''''
Mit Array

...
DIM fileread(1 to 3) AS STRING
ARRAY ASSIGN fileread() = "A", "B", "C"
...
...
FOR i = 1 TO 3
    PRINT fileread(i)
NEXT


Wenn du dich mit Pointern auskennst, sieh' dir ASMDATA an.
Ansonsten versuch's im powerbasic.de Forum
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 13.09.2012, 20:03    Titel: Antworten mit Zitat

Ich weiß nicht, wie du auf PowerBasic kommst und dazu noch Codes postest, aber ich glaub das war das falsche Forum. Zunge rausstrecken

@Topic:
Data/Read/Restore ist ein altes System zur Datenhaltung, das seit Jahrzehnten überholt ist. Arrays sind für kleine Aufgaben genau richtig, volta zeigt in seinem Beispiel, wie man Arrays direkt initialisiert.
Bei größeren Datenmengen macht es Sinn, die Daten auszulagern. Möglich wäre hier eine Datenbank ála MySQL. Meist reicht aber auch eine einfache Textdatei aus. Wichtigstes Schlüsselwort dafür ist OPEN.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 14.09.2012, 03:09    Titel: Antworten mit Zitat

Ja*hust*MySQL, wie wärs mit SQLite. Dessen C API ist auch nicht so ganz butthurt wie die von MySQL.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
RWK



Anmeldungsdatum: 04.07.2011
Beiträge: 44

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

Was auch witzig ist, wenn denn Daten fest im Programm hinterlegt sein soll, man es aber doch vor dem erstellen der Datei ändern will, einfach eine Datei mit einzubetten.

z.B. Eine Datei für Tätigkeitenschlüssel die in meinem Fall T3.csv heisst

Code:
10;Arbeitsschutzingenieur(in)
11;Ackerbauer/-bäuerin 
11;Ackermann/-frau 
11;Ackerwirt(in)
11;Agrochemiker(in)
11;Alleinmädchen  - ohne nähere Angaben
11;Almbauer/-bäuerin 
11;Almbauer/-bäuerin  - Landwirt(in)
11;Arzneipflanzenanbauer(in)
11;Asphaltgewinner(in) 
... 23.000 weitere


Code:

#Include Once "File.bi"
#Include Once "IncFile.bi"

Dim Shared As String Taet3(40000,3), Taet5(40000,3)
Dim Shared As Integer what = 1

Sub Console ( DebugText As String)
        FF_ListBox_InsertString( HWND_frmMain_ListConsole, 0, DebugText )
End Sub

Sub ReadFiles
Dim As Long x, y, z, p1, p2, p3
Dim As String buffer

   p1 = 1: y = 1
   incFile (incT3, "t3.csv")
   buffer = *Cast(ZString Ptr, incT3)
   x = Len(buffer)

Do
  p2 = InStr(p1,buffer,";")
  p3 = InStr(p2+1,buffer,Chr(13)&chr(10))
  If p3 = 0 Then Exit Do 
  Taet3(y,0) = Str(y)
  Taet3(y,1) = Mid(buffer,p1,p2-p1)
  Taet3(y,2) = Mid(buffer,p2+1,p3-p2-1)
p1 = p3 + 2
y = y + 1
Loop Until p1 > x


Die IncFile.bi gibts hier http://www.freebasic.net/forum/viewtopic.php?f=7&t=8504&p72472

Die Datei liegt dann beim Erstellen des Programms im gleichen Ordner und wird dann einfach mit eingebunden.

Aber ansonsten ist SQLite wirklich gut. Benutze ich bei meinem LaufProgramm auch..ist nicht so schwer.

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


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

BeitragVerfasst am: 14.09.2012, 20:47    Titel: Antworten mit Zitat

READ und DATA inkl. RESTORE sind halt noch Relikte aus dem wirklich klassichen BASIC, z.B. Commodore 64.

FreeBasic aber besitzt inzwischen Sprachelemente vieler moderner Programmiersprachen, zu denen u.a. auch konstante Arrays mit Aufzählung initialisieren dazugehören. Sprachen wie C/C++, Java, Pascal usw. kennen übrigens nur diese Form, konstante Daten im Quellcode selber unterbringen zu können.
_________________
Teste die PC-Sicherheit mit www.sec-check.net
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
Löwenherz



Anmeldungsdatum: 25.08.2008
Beiträge: 86
Wohnort: auf einer sonnigen Insel :)

BeitragVerfasst am: 25.09.2012, 13:21    Titel: Antworten mit Zitat

@alle: vielen Dank für die Infos lächeln ich versuch's nun mit Arrays, sieht besser und sinnvoller aus für mich. Muss mich da aber wieder noch etwas einfuxen mit freebasic. beste grüße, frank
_________________
Das Leben ist wie eine Pralinenschachtel, man weiß nie, was dort drinnen für tolle wie böse Überraschungen stecken
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