Aus .txt auslesen.

02/23/2012 20:44 JustSkillx3#1
Ich bräuchte wohl hilfe.

Ich möchte,dass mein programm aus einer .txt datei,die sich dann im gleichen ordner befindet,die informationen ausliest.

Ich habe 3 Buttons:
Homepage
Forum
Spielen

Und nun will ich,dass was man in die txt eingegeben hat,das auch abgerufen wird.
Also es soll z.b. in der Txt stehen:

Homepage: "homepage.de"
Forum: "forum.de"
exe: "Metin2.exe"

Also was ich dahinter eingegeben hab,soll dann abgerufen werde.
Es sind 2 Links,und eine .exe

Danke im Vorraus!
02/23/2012 22:03 lujaluja#2
Ich hab da eine Frage, meinste, dass aus der Text Datei der Inhalt ausglesen wird?
Und wir sind im Forum .NET, da man mit: C#, VBasic, C++, J#,etc. .NET programmieren kann, wäre es gut die Sprache anzugeben.
02/23/2012 22:14 Kingtom2009#3
Also wenn es VB ist dann könnte ich dir nur sagen wie du einen Pfad aus einer Textbox lesen kannst und öffnen kannst.
zb.
Textbox1 dort steht drinne C:/Programme/Adobe/photoshop.exe
wenn du auf button1 klickst öffnet er das programm.

Du willst bestimmt einen Patcher machen wo man seine eigenen Daten eingeben kann.
02/23/2012 22:23 Vloxxity#4
Guck dir mal streamwrite / streamread an damit geht das ganz easy hab das auch mal vor ner Zeit benutzt um logs zu schreiben / txtdateien auszulesen...
02/24/2012 12:51 JustSkillx3#5
Ja ich benutze Visual Basic 2008,hier mal ein screen um es besser vorstellen zu können.
[Only registered and activated users can see links. Click Here To Register...]

Und nun will ich,dass er aus dieser txt diese sachen ausliest und dann auf homepage etx drücken und sich das öffnet in dem Webbrowser1
02/24/2012 15:07 Peacem4k3r#6
Mit einem StreamReader:

Vorher den Namespace System.IO einbinden, dann:

using (StreamReader rdr = new StreamReader(File.Open(/*Pfad*/, FileMode.Open))){
//hier mit jeweils nem rdr.ReadLine() die nächste Zeile einlesen und verarbeiten
rdr.Close(); // NICHT vergessen!
}

Das ist zwar C#.Net, kannst du aber direkt übersetzen, die Typennamen sind gleich.

Zum öffnen eines Prozesses: Einfach den Namespace System.Diagnostics einbinden und:

Process.Start(new ProcessStartInfo(/*pfad*/));

MfG


//Edit ich sehe grad, du willst eine INI-ähnliche Datei einlesen. Dafuer gibt es zwei Wege:

1. Du nimmst den StreamReader, und splittest du einzelnen Zeilen zb durch String.Split auf, oder
2. Du P/Invokest diese Methoden aus der Kernel32.dll:
[Only registered and activated users can see links. Click Here To Register...]. Ich hab das schonmal gemacht, wenn du meinen Code haben willst, schreib mir eine PN.
02/24/2012 15:13 JustSkillx3#7
naja ich bin noch ein ziemlicher noob in sowas,könntest du mich in skype adden,ich hab ne idee wie man das machen könnte.Einfach text boxes,wo man die adresse eingibt usw.
02/24/2012 15:29 Che#8
Da du in deiner Textdatei sowieso schon die Grundstruktur einer .ini-Datei verwendest frage ich mich ernsthaft, warum du es als .txt speicherst und nicht gleich als .ini ;O
Naja wie auch immer, über die Windows API kannst du das ganze schneller und sauberer machen, siehe [Only registered and activated users can see links. Click Here To Register...].

Du musst im Endeffekt nur das hier vor deine Subs in dein Modul/deine Klasse einfügen:
Code:
Private Declare Function GetPrivateProfileSection Lib "kernel32" Alias _
    "GetPrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpReturnedString As String, _
    ByVal nSize As Long, ByVal lpFileName As String) As Long
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias _
    "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
    ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Long, _
    ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileSection Lib "kernel32" Alias _
    "WritePrivateProfileSectionA" (ByVal lpAppName As String, ByVal lpString As String, _
    ByVal lpFileName As String) As Long
Private Declare Function WritePrivateProfileString Lib "kernel32" Alias _
    "WritePrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Any, _
    ByVal lpString As Any, ByVal lpFileName As String) As Long
Public Function ReadIni(Filename As String, Section As String, Key As String) As String
Dim RetVal As String * 255, v As Long
  v = GetPrivateProfileString(Section, Key, "", RetVal, 255, Filename)
  ReadIni = Left(RetVal, v - 1)
End Function
Und liest dann in deinen Subs/Funktionen die .ini im Fall des Werts für das Feld "Link1" wie folgt aus:
Code:
ReadIni("C:\test.ini", "Settings", "Link1")
Das ganze dann in ne Variable zu speichern oder damit zu arbeiten wirst du wohl selbst schaffen ;)
02/24/2012 16:39 JustSkillx3#9
Hab alles hinbekommen danke :D