Deutsch
Forum

SaveFile Dateimaske Dateiname

 

Julian
Schmidt
Hey,
wie kann man bei einen SaveFile-Dialog sowohl einen Dateinamen vorgeben, als auch Dateimasken verwenden?
Bisher bekomme ich es nur einzeln aber nicht in einen Dialog hin.
KompilierenMarkierenSeparieren
@SaveFile$("Speichere Datei", "Dateiname")

KompilierenMarkierenSeparieren
@SaveFile$("Speichere Datei mit Maske", "XProfan (*.prf)|*.prf|Header-Datei (*.ph)|*.ph|Text (*.txt)|*.txt")

Gibt es andere Lösungen als selbst zeichnen? Wenn nein, hat jemand schonmal so einen Dialog selbst gezeichnet?

LG

Julian
 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
01.01.2013  
 




Andreas
Miethe


Sicher doch.
Ist zwar schon uralt, sollte aber funktionieren
KompilierenMarkierenSeparieren
'##############################################
'# Autor           : ampsoft (Andreas Miethe) #
'# Datum           : uralt                    #
'# Thema           : Open/save Dialog         #
'# XProfan-Version : Profan 5.0               #
'##############################################
Def APIGetOpenFileName(1) ! "COMDLG32.DLL","GetOpenFileNameA","#","&"
Def APIGetSaveFileName(1) ! "COMDLG32.DLL","GetSaveFileNameA","#","&"
Def APICommDlgExtendedError(0) ! "COMDLG32.DLL","CommDlgExtendedError","","&"
Declare Name#,opensave#,filter#,filter$,vorgabe#
Dim Filter#,255
Dim Vorgabe#,255
Dim name#,255
Let filter$="Alle Dateien (*.*)",chr$(0),"*.*",chr$(0)
Let Filter$=filter$;"Bitmaps (*.bmp)",chr$(0),"*.bmp",chr$(0)
Let Filter$=filter$;"Textdateien (*.txt)",chr$(0),"*.txt",chr$(0)
Let Filter$=filter$;"Helpdateien (*.hlp)",chr$(0),"*.hlp",chr$(0)
Let Filter$=filter$;"Includedateien (*.inc)",chr$(0),"*.inc",chr$(0)
Let Filter$=filter$;"Dateien (*.exe;*.com;*.pif)",chr$(0),"*.exe;*.com;*.pif",chr$(0)
string filter#,0 = filter$
string vorgabe#,0 = "*.*"
Dim opensave#,76
Long opensave#,0 = 76'     Groesse der Struktur
word opensave#,4 = %hwnd'     Aufrufendes Fenster
Long opensave#,12 = filter#'     Vorgabefilter
Long opensave#,28 = vorgabe#'     Vorgabestring -> entweder Dateiname oder *.*
Long opensave#,32 = 256'     MaxFile
Long opensave#,48 = Name#'     Dialogbox-Überschrift
Long opensave#,52 = $00001002'     Flags As Long
String name#,0="Such Dir 'ne Datei aus"
String vorgabe#,0 = "test.prf"
ApiGetOpenFileName(opensave#)
print @string$(vorgabe#,0)
print APICommDlgExtendedError()," <- Fehlerrückgabe der Dialogbox , bei 0 ist alles glattgegangen"
string filter#,0 =filter$
string vorgabe#,0 = "*.*"
String name#,0="Such Dir 'nen schönen Namen aus"
ApiGetSaveFileName(opensave#)
print APICommDlgExtendedError()," <- Fehlerrückgabe der Dialogbox , bei 0 ist alles glattgegangen"
'Auslesen des Pfades
print @string$(vorgabe#,0)
Print
waitinput
Dispose opensave#
Dispose Filter#
Dispose Vorgabe#
Dispose Name#
End
 
XProfan X2
Gruss
Andreas
________ ________ ________ ________ _
Profan 3.3 - XProfanX2
Win 95,98,ME,2000,XP,Vista - Win 7 32 / 64 Bit
ASUS X93S - Intel Core I7-NVIDIA GForce 540M 8GB Arbeitsspeicher
Homepage :  [...] 
01.01.2013  
 




Julian
Schmidt
Danke, das du den Quelltext ausgegraben hast.
Ich habe daraus mal einen Proc zusammengezimmert.
KompilierenMarkierenSeparieren
Def APIGetSaveFileName(1) ! "COMDLG32.DLL","GetSaveFileNameA","#","&"
CLS
print SaveFile_(%hwnd,"Datei speichern","Neues Textdokument.txt","Alle Dateien (*.*)|*.*|Textdateien (*.txt)|*.txt|Helpdateien (*.hlp)|*.hlp|Includedateien (*.inc)|*.inc")
Waitinput 1500

Proc SaveFile_

    Parameters hwnd&, titel$, name$, maske$
    Declare filter$,Vorgabe#,opensave#, erg$

    whileloop 1,Len(maske$,"|"),2

        filter$=filter$+SubStr$(maske$,&loop,"|")+chr$(0)+SubStr$(maske$,&loop+1,"|")+chr$(0)

    EndWhile

    Dim Vorgabe#,255
    string vorgabe#,0 = "*.*"
    Dim opensave#,76
    Long opensave#,0 = 76
    word opensave#,4 = hwnd&
    Long opensave#,12 = addr(filter$)
    Long opensave#,28 = vorgabe#
    Long opensave#,32 = 256
    Long opensave#,48 = addr(titel$)
    Long opensave#,52 = $00001002
    String vorgabe#,0 = name$
    ApiGetSaveFileName(opensave#)
    erg$=@string$(vorgabe#,0)
    Case Len(erg$,"\")=1 : Clear erg$'Abbruch
    Dispose Opensave#
    Dispose Vorgabe#
    Return erg$

EndProc

 
XProfan X2
Win7 Professional, SP1, AMD FX(tm)-8350 Eight-Core Processor

˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗˗
Webseite [...] 
01.01.2013  
 



Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

2.976 Betrachtungen

Unbenanntvor 0 min.
Torben Nissen01.02.2021
rquindt20.04.2016
E.T.06.11.2014
Georg Hülsmann07.10.2013
Mehr...

Themeninformationen

Dieses Thema hat 2 Teilnehmer:

Julian Schmidt (2x)
Andreas Miethe (1x)


Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie