SaveFileRequester()

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

SaveFileRequester()

Beitrag von Alves »

Ich habe eine Frage:

Wie kann ich abfragen, welchen Dateityp der User im SaveFilerequester ausgewählt hat?

ZB Alle Dateien, Textdateien, HTML....


MfG

Alves
Benutzeravatar
Karl
Beiträge: 520
Registriert: 21.07.2005 13:57
Wohnort: zu Hause

Beitrag von Karl »

Du könntest GetExtensionPart(Datei.s) verwenden, um die Dateiart herauszufinden.

Es gibt auch die Methode mit SelectedFilePattern().

Gruß Karl
Benutzeravatar
Tafkadasom2k5
Beiträge: 1578
Registriert: 13.08.2005 14:31
Kontaktdaten:

Beitrag von Tafkadasom2k5 »

Hi!
Du kannst erstmal begrenzen, was der "Openfile"-Requester anzeigt:

Code: Alles auswählen

sFilename.s = ""
sListenArt.s = "Text-Datei (*.txt) | *.txt"
sDatEndung.s = "txt"
OpenFileDialog_(#Window_0,"Datei öffnen...", sFileName,"",sListenArt,sDatEndung,0 )
Und am Ende guckst du einfach nach, wie die letzten 3-4 Zeichen aussehen, die "sFileName" zurückgibt- weil da steht nämlich die Endung drinne ;)

Ich glaube, da gab es PureBasic einen vordefinierten Befehl für, der die Endung vom Rest trennt, bin mir da aber auch nicht mehr so sicher.

Der Code ist aus PowerBasic portiert, und ich kann nicht sagen, ob er so funktionieren würde, da ich gerade auf der Arbeit sitze..

Gr33tz
Tafkadasom2k5
OpenNetworkConnection() hat geschrieben:Versucht eine Verbindung mit dem angegebenen Server aufzubauen. 'ServerName$' kann eine IP-Adresse oder ein voller Name sein (z.B.: "127.0.0.1" oder "ftp.home.net").
php-freak hat geschrieben:Ich hab die IP von google auch ned rausgefunden!
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Tafkadasom2k5 hat geschrieben:Und am Ende guckst du einfach nach, wie die letzten 3-4 Zeichen aussehen, die "sFileName" zurückgibt- weil da steht nämlich die Endung drinne ;)
Stimmt nicht unbedingt, da man mit NFTS auch laaaange Endungen vergeben kann.
(wie lang weis ich nicht, vielleicht 255 Zeichen)

edit: mit dem Namen der Datei dürfen es genau 255 sein.
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

gibt nen befehl dafür Get ExtensionPart oder so ähnlich, schau mal in der help.
außerdem wie Karl schon angedeutet hat, kann man auch beim SaveRequester die möglichen dateitypen vorgeben, auch das sollte afaik in der help stehen.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Benutzeravatar
#NULL
Beiträge: 2238
Registriert: 20.04.2006 09:50

Beitrag von #NULL »

Code: Alles auswählen

StandardFile$ = ""
Pattern$      = "Text (*.txt)|*.txt;*.bat|PureBasic (*.pb)|*.pb|Alle Dateien (*.*)|*.*"
                ; 3 pattern (0-2)
Pattern       = 0
File$ = SaveFileRequester("Bitte Datei zum Speichern auswählen", StandardFile$, Pattern$, Pattern)

If SelectedFilePattern()=-1
  Debug "abgebrochen"
ElseIf SelectedFilePattern()=0
  Debug "der ausgewählte pattern ist    Text (*.txt)|*.txt;*.bat"
ElseIf SelectedFilePattern()=1
  Debug "der ausgewählte pattern ist    PureBasic (*.pb)|*.pb"
ElseIf SelectedFilePattern()=2
  Debug "der ausgewählte pattern ist    Alle Dateien (*.*)|*.*"
EndIf
my pb stuff..
Bild..jedenfalls war das mal so.
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Hatte ich nicht SaveFileRequester() geschrieben?

Naja, danke, Selectedfilepattern() funzt
Benutzeravatar
Alves
Beiträge: 1208
Registriert: 19.04.2006 18:24
Kontaktdaten:

Beitrag von Alves »

Kleine Frage am Rand:
Syntaxhighlighting Lib für 3.ß4?

2. Warum hat er hier keine aktuelle Datei?

Code: Alles auswählen

Procedure save()
  OpenFile(#file,save$)
  WriteString(text$) 
  CloseFile(#file)
EndProcedure  

Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Alves hat geschrieben:Kleine Frage am Rand:
Syntaxhighlighting Lib für 3.ß4?
äh, ja, was ist damit?
Alves hat geschrieben:2. Warum hat er hier keine aktuelle Datei?
was heisst 'aktuelle Datei'?

Generell: Immer prüfen, ob OpenFile korrekt durchgeführt werden konnte.

Also:

Code: Alles auswählen

  If OpenFile(#file,save$)
    [...]
besser:

Code: Alles auswählen

  FF = OpenFile(#PB_Any,save$)
  If FF
    [...]
    CloseFile(FF)
  EndIf
Du hast sicherlich auch überprüft, ob in save$ ein gültiger Pfad steht?

Grüße ... Kiffi
Kaeru Gaman
Beiträge: 17389
Registriert: 10.11.2004 03:22

Beitrag von Kaeru Gaman »

Alves hat geschrieben:2. Warum hat er hier keine aktuelle Datei?

Code: Alles auswählen

Procedure save()
  OpenFile(#file,save$)
  WriteString(text$) 
  CloseFile(#file)
EndProcedure  

sind save$ und text$ denn global?
wenn nicht sind sie leer innerhalb der procedure.
Der Narr denkt er sei ein weiser Mann.
Der Weise weiß, dass er ein Narr ist.
Antworten