Seite 1 von 2
SaveFileRequester()
Verfasst: 06.06.2006 14:10
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
Verfasst: 06.06.2006 14:36
von Karl
Du könntest GetExtensionPart(Datei.s) verwenden, um die Dateiart herauszufinden.
Es gibt auch die Methode mit SelectedFilePattern().
Gruß Karl
Verfasst: 06.06.2006 14:40
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
Verfasst: 06.06.2006 14:46
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.
Verfasst: 06.06.2006 14:50
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.
Verfasst: 06.06.2006 15:04
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
Verfasst: 06.06.2006 22:02
von Alves
Hatte ich nicht SaveFileRequester() geschrieben?
Naja, danke, Selectedfilepattern() funzt
Verfasst: 06.06.2006 22:24
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
Verfasst: 06.06.2006 22:46
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:
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
Verfasst: 07.06.2006 04:44
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.