# Textteil aus Datei einlesen



## Greenhorn (27. Mai 2003)

Hallo Zusammen

Mein Problem: ich habe eine test.txt Datei mit mehreren Zeilen etwa so:


Dies ist eine Text Datei
Dies ist der auszulesende Wert:
ADNO=0180


In meinem Programm will ich nur den Teil "0180" in ein Textfeld einlesen und anzeigen lassen.


Dim AdnoData As String
DNr=FreeFile
Open "C:\Text.txt" For Input As #DNr
Input #DNr, AdnoData
Close #DNr


Wie muss ich dem Input-Befehl nun zuweisen, dass nur der Teil "0180" aus der Datei eingelesen werden darf, oder muss ich das wo anders zuweisen?

Danke fürs Feedback und Gruss aus der Schweiz
Greenhorn


----------



## Daniel Toplak (27. Mai 2003)

In deinem Fall wäre es doch besser mit Config-Dateien im INI-Format zu arbeiten, die kannst du wunderbar mit den API-Funktionen wie GetPrivateProfileString() und WritePrivateProfileString() verarbeiten.

Gruss Homer


----------



## Greenhorn (27. Mai 2003)

Danke fürs Feedback, leider sind die Dateien von einem anderen Programm bereits vorgegeben, daher muss ich mich mit den Dateien:

Alpha.id und
Profile.usr

herumschlagen (beides Textdateien)

Da wir aber bereits beim Thema .INI sind, ich habe da auch eine Datei die nennt sich MF.ini mit folgendem Inhalt:


[Kompetenz]
KompetenzStufe=1
PolicierungsStufe=1
MutationsStufe=1

[Betriebsart]
BetreibungsStufe=1
TestModus=1

[Optionen]
OptionenBeimBeendenSpeichern=0

[CAPI_OUT]
Input-Style=C:\PROGRA~1\baloise\basler32\compusty\main\mfmain.sty


Nun will ich von dieser Ini nur den Teil Nach PolicierungsStufe= also den Wert "1" anzeigen lassen, die Codierung dafür hab ich mehr oder weniger auch schon raus (Quelle Das Grosse Buch Visual Basic von Andreas Maslo)


Public Function Ini(Datei As String, Sektion As String, Schluessel As String) As String
Dim Wert As String
Dim R As Integer
Wert = Space(255)
R= GetPrivateProfileString(Sektion, Schluessel, "", Wert, Len(Wert), Datei)
Ini = Left(Wert, R)
End Function


Wie und Wo geb ich jetzt aber in diesem Code den Pfad der Datei und die Bezeichnung der Sektion und des Schlüssels an?????

THX For Feedback
Greenhorn


----------



## Greenhorn (27. Mai 2003)

Ok, nach langem Suchen hab ichs gefunden:

Funktion GetPrivateProfileString

Private Declare Function GetPrivateProfileStringA Lib "kernel32.dll" ( _
    ByVal lpSection As String, _
    ByVal lpSetting As String, _
    ByVal lpDefault As String, _
    ByVal lpReturnedString As String, _
    ByVal nSize As Long, _
    ByVal lpFileName As String _
  ) As Long


Bezeichnung des Standartpfades der INI (sofern Sie sich im selben Verzeichnis wie die EXE befindet und den selben Namen wie die EXE trägt):


  Public Function IniPath() As String

  Static AppIniFile As String

  If Len(AppIniFile) = 0 Then

    If Right$(App.Path, 1) = "\" Then
      AppIniFile = App.Path & App.EXEName & ".ini"
    Else
      AppIniFile = App.Path & "\" & App.EXEName & ".ini"
    End If

  End If
  IniPath = AppIniFile

End Function


Und nun das Einlesen der Ini-Datei (hab alle drei Funktionen in ein Modul Names INIFile gesetzt.)



Public Function IniRead( _
    ByRef Section As String, _
    ByRef Key As String, _
    Optional ByRef Default As String, _
    Optional ByRef IniFile As String _
  ) As String

  Dim s As String * 256
  Dim n As Long

  If Len(IniFile) Then
    n = GetPrivateProfileStringA(Section, Key, Default, s, 255, IniFile)
  Else
    n = GetPrivateProfileStringA(Section, Key, Default, s, 255, IniPath)
  End If
  IniRead = Left$(s, n)

End Function


Nun kommt in den Quellcode der Form: Textpolice.Text bezeichnet das Ausgabe Textfeld meines Programms.


Textpolice.Text = IniRead("Kompetenz", "KompetenzStufe", IniFile:="C:\Program Files\baloise\Mf_tcs\Mf.ini")


Handelt es sich um die besagte Standart ini könnt Ihr den "Pfad zur INI" auch einfach weglassen 

So das war die Antwort auf meine eigene Frage, hoffentlich klappts und hoffentlich versteht ihr hier mein Greenhorn vbDeutsch

Liebe Grüsse aus der CH
Greenhorn


----------



## Memphi (21. Juli 2005)

hi, 
ich arbeite mit dem webbrowser in einer form (wbrWebBrowser)
ich möchte von einer geöffneten seite strings auslesen und die entsprechend verarbeiten
beispielsweise
<!-- Msg: Login war nicht erfolgreich -->
und das soll er dann in einer MsgBox ausgeben

oder <!-- Version: 1.0 -->
welche er dann mit einem internen string vergleichen soll, ob das prog auf aktuellem stand ist
(das mache ich zwar schon, in dem ich eine ini immer neu herunterlade und werte vergleiche, aber das wäre doch etwas professioneller

wer kann mir helfen?


----------

