title image


Smiley Re: word97: Zeile in einer Ini-Datei tauschen
Hallo Johannes,

hier ist eine kleine Auswahl.



Guten Rutsch.



      Hubert





' Anpassen

Private Const Pfad = "C:\Eigene Dateien\"

 

Sub ReadAFile()

   ' Textdatei sequentiell einlesen

   Dim ReadLineTxt As String

 

   Open Pfad & "Textfile.txt" For Input As #1

   Do While Not EOF(1)

      Line Input #1, ReadLineTxt

      ' hier kann mann verschiedenes machen, z.B.

      ' im Dokument einfügen ...

      Selection.TypeText Text:=ReadLineTxt & vbCrLf

      ' oder in ein Listenfeld einlesen:

      ListBox1.AddItem ReadLineTxt

   Loop

  Close #1

End Sub

 

' --------------------

 

' Wie kann ich den Inhalt einer txt-Datei in einer UserForm anzeigen

' Nimm eine Form und setze darauf

' - eine Listbox

' - einen Commandbutton (einlesen)

' - einen Commandbutton (speichern)

' - eine Textbox

 

' Den nachstehenden Code fügst in das Click-Ereignis vom Commandbutton ein.

Private Sub CommandButton2_Click()

Dim sDummy As String

 

' Werte einlesenfüllen

   SDateiName = Pfad & "Test.Txt"

   ListBox1.Clear

 

   Open SDateiName For Input As #1

   Do While Not EOF(1)

      Line Input #1, sDummy

      ListBox1.AddItem (sDummy)

   Loop

   Close #1

 

   ListBox1.ListIndex = 0

End Sub

 

' Und wie kann ich den Inhalt dieser Text-Datei

' von der UserForm aus ändern?

 

' Zum ändern eine Zeile empfehle ich eine Textbox auf die UserForm zu

' legen und folgende zwei Prozeduren zusätzlich einzubauen.

 

Private Sub ListBox1_Change()

   TextBox1.Text = ListBox1.Value

End Sub

 

Private Sub TextBox1_Change()

   ListBox1.List(ListBox1.ListIndex) = TextBox1.Text

End Sub

 

' Und nach dem ändern wieder speichern.

Private Sub CommandButton2_Click()

   Dim sDummy As String

   Dim iZähler As Interger

 

   SDateiName = Pfad & "Test.Txt"

   Kill SDateiName

 

   Open SDateiName For Output As #1

   For iZähler = 0 To (ListBox1.ListCount - 1)

      Write #1, ListBox1.List(iZähler)

      iZähler = iZähler + 1

   Next iZähler

   Close #1

End Sub

 

' --------------------------

 

Public Sub WriteFile()

   ' Open file for output

   Open Pfad & "Testfile.txt" For Output As #1

   ' Write comma-delimited data

   Write #1, "Hello World", 234

   ' Close file

   Close #1

End Sub

 

Public Sub ReadFile()

   Dim MyString, MyNumber

   ' Open file for input

   Open Pfad & "Testfile.txt" For Input As #1

   ' Loop until end of file

     Do While Not EOF(1)

      ' Read data into two variables

      Input #1, MyString, MyNumber

      ' Print data to the Immediate window

      Debug.Print MyString, MyNumber

   Loop

   ' Close file

   Close #1

End Sub



'

' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

'

' Attribute VB_Name = "KillEntryOrSektion"

' Getestet in Word 97

' Betrifft: Einzelne Einträge oder Sektionen

' in einem Textfile (Inifile) löschen

'

' Pseudo-API

Declare Function WritePrivateProfileString Lib "Kernel32" Alias _

"WritePrivateProfileStringA" (ByVal lpAppName As Any, _

ByVal lpKeyName As Any, _

ByVal lpString As Any, _

ByVal lpFileName As String) As Long

'

' Funktion Section löschen

Sub DeletePrivateProfileSection(SectionName As String, IniFileName As String)

    Dim nRetVal As Long

    nRetVal = WritePrivateProfileString(SectionName, 0&, 0&, IniFileName)

    nRetVal = WritePrivateProfileString(0&, 0&, 0&, IniFileName)

End Sub

'

Sub TestKillSektion()

    ' Löscht die ganze [Sektion]

    Dim SectionName As String, IniFileName As String

    '

    SectionName = "Profil1"

    IniFileName = "D:\Meine.ini"

    Call DeletePrivateProfileSection(SectionName, IniFileName)

End Sub



' ---------------------------



' Funktion einzelnen löschen

Sub DeletePrivateProfileEntry(SectionName As String, _

    EntryName As String, _

    IniFileName As String)

    Dim nRetVal As Long

    ' Eintrag löschen

    nRetVal = WritePrivateProfileString(SectionName, EntryName, 0&, IniFileName)

    nRetVal = WritePrivateProfileString(0&, 0&, 0&, IniFileName)

End Sub

 

Sub TestKillEintrag()

    ' Löscht die einen einzeln Eintrag

    ' in der [Sektion]

    '

    Dim SectionName As String, EntryName As String, IniFileName As String

    ' Alle anpassen

    SectionName = "Profil1"

    EntryName = "Vname"

    IniFileName = "D:\Meine.ini"

    Call DeletePrivateProfileEntry(SectionName, EntryName, IniFileName)

End Sub

 

' ----------

' Struktur von Meine.ini

 

' [Profil1]

' Anrede = Herr

' VName = Klaus

' Nname = Mustermann

' Adresse=Musterstraße 10

' PlzOrt= 00000 Musterstadt



' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



' Form anlegen mit ComboBox, benannt als ComboBox1

' TextBox1, TextBox2, TextBox3, TextBox4

' CommandButton1, CommandButton2, ToggleButton1 (UmschaltButton)

' In der Form folgenden Code eintragen:

' Name der Ini-Datei, Pfad anpassen

Const oPfad = "D:\Mitarbeiter.ini"

 

Private Sub UserForm_Initialize()

Me.Caption = "  Sachbearbeiter"

Me.Height = 90

Me.Width = 353

 

Dim Start, Ende As Integer

Open oPfad For Input As #1

Do While Not EOF(1)

    Line Input #1, ein$

    Start = InStr(1, ein$, "[", 1)

    If Start > 0 Then ' wenn [ in Zeile vorhanden

        Ende = InStr(Start, ein$, "]", 1)

        If Ende > 0 Then ' wenn zusätzlich ] in Zeile vorhanden

          ComboBox1.AddItem Mid(ein$, Start + 1, Ende - 2)

        End If

    End If

Loop

Close #1

End Sub

 

Private Sub ComboBox1_Change()

 ' nach Auswahl einlesen

  TextBox1.Text = System.PrivateProfileString(oPfad, Section:=ComboBox1.Text, Key:="Vorname")

  TextBox2.Text = System.PrivateProfileString(oPfad, Section:=ComboBox1.Text, Key:="Nachname")

  TextBox3.Text = System.PrivateProfileString(oPfad, Section:=ComboBox1.Text, Key:="PLZ") & " " _

  & System.PrivateProfileString(oPfad, Section:=ComboBox1.Text, Key:="Ort")

  TextBox4.Text = System.PrivateProfileString(oPfad, Section:=ComboBox1.Text, Key:="Telefon")

End Sub

 

Private Sub CommandButton1_Click()

    Me.Hide

 

    If ActiveDocument.Bookmarks.Exists("Text1") = True Then

        ActiveDocument.Bookmarks("Text1").Select

        ActiveDocument.FormFields("Text1").Result = TextBox1.Text

    End If

 

    If ActiveDocument.Bookmarks.Exists("Text2") = True Then

        ActiveDocument.Bookmarks("Text2").Select

        ActiveDocument.FormFields("Text2").Result = TextBox2.Text

    End If

 

    If ActiveDocument.Bookmarks.Exists("Text3") = True Then

        ActiveDocument.Bookmarks("Text3").Select

        ActiveDocument.FormFields("Text3").Result = TextBox3.Text

    End If

 

    If ActiveDocument.Bookmarks.Exists("Text4") = True Then

        ActiveDocument.Bookmarks("Text4").Select

        ActiveDocument.FormFields("Text4").Result = TextBox4.Text

    End If

    Unload Me

End Sub

 

Private Sub CommandButton2_Click()

    Unload Me

End Sub



' Umschaltbutton

Private Sub ToggleButton1_Click()

    If ToggleButton1.Value = True Then

        Me.Height = 144

        Me.Width = 353

    Else

        Me.Height = 90

        Me.Width = 353

    End If

End Sub

' ----------------------

' Struktur der Ini-Datei

'

' [Mitarbeiter Schmitz]/FONT>

' Vorname =

' Nachname=

' PLZ=

' Ort=

' Telefon=









geschrieben von

Login

E-Mail:
  

Passwort:
  

Beitrag anfügen

Symbol:
 
 
 
 
 
 
 
 
 
 
 
 
 

Überschrift: