vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Mails senden, abrufen und decodieren - ganz easy ;-)  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Fortgeschrittene Programmierung
Re: Datei richtig speichern 
Autor: BAStler
Datum: 22.01.07 12:48

und das alles in ein Modul packen
Option Explicit
' zunächst die benötigten API-Deklarationen
' wegen der Nachrichten-Länge weggelassen  (siehe ShowOpenDlg, ShowSaveDlg)
 
Global lngOpenFileName As OPENFILENAME
 
'Öffnen-Dialog
Public Function ShowOpenDlg(F As Form, strFilter As String, _
  strTitel As String, strInitDir As String) As String
  ' Dim lngOpenFileName As OPENFILENAME
  Dim lngAnt As Long
 
  With lngOpenFileName
    .lStructSize = Len(lngOpenFileName)
    .hwndOwner = F.hWnd
    .hInstance = App.hInstance
    If Right$(strFilter, 1) <> "|" Then strFilter = strFilter + "|"
 
    For lngAnt = 1 To Len(strFilter)
      If Mid$(strFilter, lngAnt, 1) = "|" Then
       Mid$(strFilter, lngAnt, 1) = Chr$(0)
      End If
    Next
 
    .lpstrFilter = strFilter
    .lpstrFile = Space$(254)
    .nMaxFile = 255
    .lpstrFileTitle = Space$(254)
    .nMaxFileTitle = 255
    .lpstrInitialDir = strInitDir
    .lpstrTitle = strTitel
    .flags = OFN_HIDEREADONLY Or OFN_FILEMUSTEXIST
 
    ' Hier meine Änderung, die Do...Loop-Anweisung
    Do
      lngAnt = GetOpenFileName(lngOpenFileName)
      If (lngAnt) Then
        ' Hier wird der Dateiname an die Funktion übergeben (das könnte auch 
        ' später passieren,
        ' wenn es sich um die korrekte Dateiendung handelt)
        ShowOpenDlg = Trim$(.lpstrFile)
      Else
        ' Hier wird der Abbrechen-Button zugelassen
        Exit Do
      End If
    Loop Until (lngAnt) And Right$(Trim$(.lpstrFile), 4) = "pst" & Chr$(0)
  End With
End Function
 
'Speichern-Dialog
Public Function ShowSaveDlg(F As Form, strFilter As String, strTitel As String, _
  strInitDir As String) As String
 
  Dim lngAnt As Long
  Dim DatLen As Integer
  Dim sDateiendung As String
  Dim sExtension As Boolean
  Dim Dateiname As String
 
  With lngOpenFileName
    .lStructSize = Len(lngOpenFileName)
    .hwndOwner = F.hWnd
    .hInstance = App.hInstance
    If Right$(strFilter, 1) <> "|" Then strFilter = strFilter + "|"
 
    For lngAnt = 1 To Len(strFilter)
      If Mid$(strFilter, lngAnt, 1) = "|" Then Mid$(strFilter, lngAnt, 1) = _
        Chr$(0)
    Next
 
    If .lpstrFileTitle <> "" Then
      .lpstrFile = .lpstrFileTitle
    Else
      .lpstrFilter = strFilter
      .nMaxFile = 255
      .lpstrFileTitle = Space$(254)
      .nMaxFileTitle = 255
      .lpstrInitialDir = strInitDir
    End If
    .lpstrTitle = strTitel
    .flags = OFN_HIDEREADONLY Or OFN_OVERWRITEPROMPT Or OFN_CREATEPROMPT
 
    lngAnt = GetSaveFileName(lngOpenFileName)
    If (lngAnt) Then
      ' gewünschte Dateiendung
      sDateiendung = "pst"
      ' Prüfung des eingegebenen Dateinamens
      ' Dateiname wurde nur mit Punkt angegeben
      If InStr(1, .lpstrFileTitle, ".") > 0 Then
        ' Dateiname wurde mit korrekter Dateiendung angegeben
        If InStr(1, .lpstrFileTitle, "pst") Then
        Else
          DatLen = Len(Trim$(.lpstrFileTitle))
          ' Dateiname wurde mit unzulässiger Dateiendung angegeben
          If DatLen > InStr(1, .lpstrFileTitle, ".") + 1 Then
            ' Statt der MsgBox kann auch die Endung ab [InStr(1, 
            ' .lpstrFileTitle, ".")] abgeschnitten werden
            MsgBox "Unzulässige Dateiendung - Datei wird nicht gespeichert!"
          Else
            ' Dateiname hat bereits einen Punkt und braucht nur noch die 
            ' richtige Dateiendung
            Dateiname = Mid$(.lpstrFileTitle, 1, (DatLen - 1))
            .lpstrFileTitle = Dateiname & sDateiendung
          End If
        End If
      Else
        DatLen = Len(Trim$(.lpstrFileTitle))
        Dateiname = Mid$(.lpstrFileTitle, 1, (DatLen - 1))
        ' Dateiname hat noch keinen Punkt und braucht noch die richtige 
        ' Dateiendung
        .lpstrFileTitle = Dateiname & "." & sDateiendung
      End If
      ShowSaveDlg = .lpstrFileTitle
    End If
  End With
End Function
Gruß BAStler
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Datei richtig speichern860tischler21.01.07 09:57
Re: Datei richtig speichern512vbtricks21.01.07 12:51
Re: Datei richtig speichern476tischler21.01.07 14:19
Re: Datei richtig speichern486vbtricks21.01.07 14:32
Re: Datei richtig speichern469tischler21.01.07 17:26
Re: Datei richtig speichern471vbtricks21.01.07 18:42
Re: Datei richtig speichern465BAStler22.01.07 12:43
Re: Datei richtig speichern491BAStler22.01.07 12:48

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel