Mit Spiderbasic lokale Dateien auslesen.

Hier könnt ihr alle Fragen zu SpiderBasic austauschen.
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von stevie1401 »

Generell scheint es ja doch machbar zu sein wie dieses Beispiel zeigt:

Code: Alles auswählen



  Procedure ReadCallback(Status, Filename$, File, Size)
    If Status = #PB_Status_Loaded
      Debug "File: " + Filename$ + " - Size: " + Size + " bytes"
      
      ; Read the first 10 lines
      ;
      While Eof(0) = 0 And NbLine < 10 
        Debug ReadString(0)            
        NbLine+1
      Wend
      
      CloseFile(0)
      
    ElseIf Status = #PB_Status_Error
      Debug "Error when loading the file: " + Filename$
    EndIf
  EndProcedure
  
  Procedure OpenFileRequesterCallback()
    If NextSelectedFile()
      OpenFile(0, SelectedFileID(), @ReadCallback(), #PB_LocalFile)
    EndIf
  EndProcedure
  
  Procedure ChooseFileEvent()
    OpenFileRequester("*.txt", @OpenFileRequesterCallback())
  EndProcedure
  
  OpenWindow(0, 0, 0, 300, 50, "Read file example", #PB_Window_ScreenCentered)
    ButtonGadget(0, 10, 10, 280, 30, "Choose a file...")
    
  BindGadgetEvent(0, @ChooseFileEvent())



Die Frage ist, wie kann ich Dateien ohne den OpenFileRequester öffnen?
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
RSBasic
Admin
Beiträge: 8022
Registriert: 05.10.2006 18:55
Wohnort: Gernsbach
Kontaktdaten:

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von RSBasic »

Genau, wie ich vermutet habe.

Einfach statt SelectedFileID() trägst du den relativen Pfad ein.
Aus privaten Gründen habe ich leider nicht mehr so viel Zeit wie früher. Bitte habt Verständnis dafür.
Bild
Bild
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von stevie1401 »

Wenns doch nur so einfach wäre.

Den Status = #PB_Status_Loaded in der Procedure ReadCallback bekommt man nur über OpenFileRequester("*.txt", @OpenFileRequesterCallback())
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von NicTheQuick »

Spiderbasic läuft meines Wissens einfach als Webanwendung im Browser und stellt keinen serverseitigen Anwendungsserver bereit. Somit kann man nur über den Öffnen-Dialog Dateien auf die Seite hochladen und dann benutzen. Mehr geht nicht. Das verbieten die Browser. Da kann auch Spiderbasic nichts daran ändern.

Ich hab das Gefühl hier fehlt Basiswissen, das sich noch angeeignet werden müsste. Ich tue das allerdings, weil es dazu genug im Netz gibt. Wenn man suchen möchte, ersetzt man "Spiderbasic" einfach durch "Javascript", dann sollte man genügend Ergebnisse erhalten.
Bild
¯\_(ツ)_/¯
Beiträge: 141
Registriert: 18.08.2017 09:35

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von ¯\_(ツ)_/¯ »

NicTheQuick hat geschrieben:Ich hab das Gefühl hier fehlt Basiswissen, das sich noch angeeignet werden müsste.
Das spielt für stevie1401 aber keine Rolle weil er Spiderbasic hat und seiner Meinung nach muss er sich nicht mit anderen Themen beschäftigen weil er eben SpiderBasic hat. ;)
Bild
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von stevie1401 »

Oh, jetzt fängt Bashing an? Wie cool.
Wer auf meine Fragen nicht antworten möchte, muss es nicht. Und wem die Augen weh tun von meinen Fragen, der kann diese getrost überlesen.
Teilt der Allgemeinheit doch bitte deutlich mit, wer hier Fragen stellen darf und welche Fragen genehm sind.
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
NicTheQuick
Ein Admin
Beiträge: 8675
Registriert: 29.08.2004 20:20
Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti
Wohnort: Saarbrücken
Kontaktdaten:

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von NicTheQuick »

Ich möchte dich keinesfalls bashen. Ich habe nur das Gefühl wir drehen uns im Kreis. Und man müsste einfach weiter ausholen um zu erklären, warum das, was du tun möchtest, nicht möglich ist, oder zumindest nicht so einfach möglich ist. Ich versuche es nochmal grob:
spiderbasic.com hat geschrieben:SpiderBasic is new web client-side programming language...
Als client-seitige Websprache gibt es heutzutage eigentlich nur noch Javascript (Java, Flash, Silverlight u.a. sterben eher aus). Spiderbasic macht nichts anderes als eine BASIC-Syntax bereitzustellen, die dann in Javascript übersetzt wird. Wurde ein SB-Programm also kompiliert, fällt hinten HTML und Javascript raus, das im Kontext einer Webseite in einem Browser ausgeführt werden kann. Das heißt die programmierte Anwendung läuft nur im Browser und ist auch immer nur so schnell wie die JavaScript-Engine des verwendeten Browsers in Verbindung mit dem PC, auf dem der Browser läuft, also ähnlich wie eine EXE-Datei, die du ausführst.
Der Unterschied zu einer nativen EXE-Datei ist jetzt aber, dass der Browser den JavaScript-Code in einer Sandbox laufen lässt, die alle Zugriffe auf andere Webseiten, die gleichzeitig in anderen Tabs offen sind, und auf das Betriebssystem selbst blockt. Das heißt kein JavaScript-Code kann irgendwo außerhalb des Browsers auf irgendetwas zugreifen, auch nicht auf das Dateisystem. Schafft man es durch irgendeinen Hack doch ohne Zustimmung des Benutzers auf Dateien zuzugreifen, kann man sich Dank der Bug-Bounty-Programme von Google, Mozilla, Microsoft und Apple ein paar Groschen verdienen, weil dies ein erhebliches Sicherheitsleck darstellt. Hier noch ein Zitat aus der Wikipedia:
Wikipedia hat geschrieben:Tägliche Anwendung findet die Abgrenzung von potenziell unsicheren Programmteilen in heutigen Webbrowsern, so arbeiten Chromium-basierte Browser für einzelne Webseiten und Plugins jeweils in unabhängigen Sandbox-Prozessen, wodurch die Stabilität erhöht wird und ein Browser-Exploit wesentlich schwieriger Kontrolle über das Anwender-System erhalten kann.
Aber wie kannst du jetzt trotzdem auf Dateien von der Festplatte des Nutzers zugreifen?

Das geht nur interaktiv durch den Nutzer. Du musst einen "Hochladen"-Button oder ein Drag'n'Drop-Feld auf der Webseite anbieten, auf das der Nutzer einzelnen Dateien ziehen kann. Ganze Ordner gehen nicht, immer nur einzelne Dateien. Deine Webseite muss dann den Upload initiieren und auf dem Server speichern, der deine Webseite ausliefert. Dafür brauchst du natürlich ein entsprechendes Backend. Das kannst du mit viel Mühe in Purebasic schreiben oder du nutzt etablierte Sprachen wie PHP, Python, Ruby u.ä. dafür. Darauf werde ich aber nicht weiter eingehen. Sobald die Datei des Nutzers nun auf dem Server gespeichert ist, kann deine Webanwendung sie jederzeit von diesem in den Speicher des Browsers laden und tun, was es damit will. Je nachdem, was du mit diesen Dateien machen willst, bietet es sich aber vielleicht eher an die Dateien im Backend, also auf dem Server zu verarbeiten, anstatt im Browser des Nutzers. Denn wenn der Nutzer ungeduldig ist und auf F5 hämmert, wird dein Programm abgebrochen und neu geladen.

Sollte dein Server dein eigener PC sein, dann kann der Server, also das Backend, natürlich auch auf deine PC Festplatte zugreifen, sofern du es ihm erlaubst. Dann kannst du prinzipiell auch direkt auf deine Dateien auf der Festplatte zugreifen. Dein Spiderbasic-Programm muss dann den Server nach einer Datei fragen und in den Browser herunterladen, damit damit gearbeitet werden kann. Aber natürlich ist dieses Szenario höchst selten und vermutlich möchtest du am Ende nur einen Server für alle Nutzer haben, sodass sie prinzipiell nur auf die Daten des Servers Zugriff haben, nicht aber auf ihre jeweils eigene Festplatte.
Bild
stevie1401
Beiträge: 659
Registriert: 19.10.2014 15:51
Kontaktdaten:

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von stevie1401 »

Danke für die Info!
Ich programmiere nur noch mit Linux.
Linux Mint 21.x
Benutzeravatar
dysti
Beiträge: 656
Registriert: 10.02.2006 18:34
Wohnort: Schlicktown

Re: Mit Spiderbasic lokale Dateien auslesen.

Beitrag von dysti »

Ich weiß nicht ob das Problem noch aktuell ist, ansonsten gebe in Google mal folgendes ein:
Https://github.com/topics/spiderbasic
Vielleicht ist hier die Lösung!
PB5 / Spiderbasic / WB14 / Win7 / Win8.1 / Win10 / Debian 9
Antworten