Textteil aus Datei einlesen

Greenhorn

Grünschnabel
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
 
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
 
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
 
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
 
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?
 
Zurück