Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Wie Text in einer Textdatei suchen und benutzen?

Frage Entwicklung VB for Applications

Mitglied: TerminatorVB

TerminatorVB (Level 1) - Jetzt verbinden

12.10.2010 um 15:40 Uhr, 5132 Aufrufe, 7 Kommentare

Hallo.

Ich arbeite gerne mit Visual Basic und habe auch schon ein Programm geschrieben, was ich auch schon auf "worldofgothic.de" veröffentlicht habe. Hierbei geht es um die Erstellung eines sogenannten NPC-Scripts, mit welchem man im Spiel einen NPC erscheinen lassen kann. Im Programm wurden hauptsächlich Textboxen und Checkboxen verwendet. Speicherfunktion etc. ist alle schon eingebaut. Was mir noch fehlt ist eine Öffnungsfunktion. Ich vermute stark, dafür braucht man einen OpenFileDialog. Wie man den erstellt weiß ich auch schon, aber jetzt geht es darum, dass man in der Text-Datei nach bestimmten Schlüsselwörtern wie 'name = xxx' sucht. Im genannten Beispiel soll das Programm nach 'name = ' suchen und den darauffolgenden Text in die entsprechende Box schreibt. Nur leider weiß ich nicht wie das geht.

Mit freundlichen Grüßen,
TerminatorVB
Mitglied: BigWim
12.10.2010 um 15:52 Uhr
Grundsätzlich bleiben m. E. nur zwei Möglichkeiten.

Deine Textdatei ist wie eine INI-Datei aufgebaut, dann kannst Du Funktionen nutzen wie ReadProfileString, die Ini-Dateien auslesen
In jedem anderen Fall bleibt nichts anderes übrig, als die Datei zeilenweise zu lesen und nach deinen Schlüsselwörtern zu suchen. Z. B. mit InStr

Markus
Bitte warten ..
Mitglied: TerminatorVB
12.10.2010 um 16:22 Uhr
Kannst du mir vielleicht ein Beispiel für die zweite Möglichkeit "InStr" geben?
Bitte warten ..
Mitglied: bastla
12.10.2010 um 16:25 Uhr
Hallo TerminatorVB und willkommen im Forum!

Wäre es nicht sinnvoller, Du würdest vorweg (auszugsweise) ein Beispiel Deiner Textdatei posten?

Ansonsten würde ich mich nicht mit "InStr()" aufhalten, sondern "Replace()" verwenden ...
[Edit] Zu flüchtig gelesen und angenommen, es sollte in die Datei geschrieben weden. [/Edit]

Grüße
bastla
Bitte warten ..
Mitglied: TerminatorVB
12.10.2010 um 16:32 Uhr
Alles klar. So sieht ein gewöhnlicher NPC-Script aus:

instance BAU_900_Onar (Npc_Default)
{
------ NSC ------
name = "Onar";
guild = GIL_BAU;
id = 900;
voice = 14;
flags = NPC_FLAG_IMMORTAL;
npctype = NPCTYPE_MAIN;

------ Attribute ------
B_SetAttributesToChapter (self, 4);

------ Kampf-Taktik ------
fight_tactic = FAI_HUMAN_STRONG;

------ Equippte Waffen ------
EquipItem (self, ItMw_1h_Bau_Mace);

------ Inventory ------
B_CreateAmbientInv (self);

------ visuals ------
B_SetNpcVisual (self, MALE, "Hum_Head_FatBald", Face_N_OldBald_Jeremiah, BodyTex_N, ITAR_Vlk_H);
Mdl_SetModelFatness (self, 2);
Mdl_ApplyOverlayMds (self, "Humans_Arrogance.mds");

------ NSC-relevante Talente vergeben ------
B_GiveNpcTalents (self);

------ Kampf-Talente ------
B_SetFightSkills (self, 70);

// ------ TA anmelden ------
daily_routine = Rtn_Start_900;
};

FUNC VOID Rtn_Start_900 ()
{
TA_Sit_Throne (09,00,21,00,"NW_BIGFARM_HOUSE_ONAR_SIT");
TA_Sleep (21,00,09,00,"NW_BIGFARM_HOUSE_UP1_04");
};

Nehmen wir als Beispiel wieder 'name' (Linie 4). Es soll gesucht werden wo Name ist und in diesem Beispiel soll "Onar" ausgegeben werden.
Bitte warten ..
Mitglied: bastla
12.10.2010 um 17:12 Uhr
Hallo TerminatorVB!

Schematisch etwa so:
01.
Dim FileName As String = "D:\Onar.txt" 
02.
Dim SearchFor As String = "name" 'Suchbegriff 
03.
Dim Sep = " = " 'Trennung vom Wert 
04.
Dim EOL As String = ";" 'Zeilenende-Kennung 
05.
 
06.
Dim sr As StreamReader = File.OpenText(FileName) 'Textdatei zum Lesen öffnen ... 
07.
Dim Content As Array = Split(sr.ReadToEnd, vbCrLf) '... und zeilenweise in Array einlesen 
08.
Dim Value As String 
09.
For Each Line In Content 'alle Zeilen durchgehen 
10.
    If InStr(Line, SearchFor & Sep) = 1 And Microsoft.VisualBasic.Right(Line, 1) = EOL Then 'beginnt Zeile mit Suchbegriff + Trennung und endet mit Zeilenende-Kennung? 
11.
        Value = Split(Split(Line, Sep)(1), EOL)(0) 'isolieren des interessierenden Teiles 
12.
        MsgBox(Value) 
13.
    End If 
14.
Next
Zur Erklärung der Zeile 11
In der Variablen "Line" steht für die eingelesene Zeile 4
name = "Onar";"
Die Zeile setzt sich daher zusammen aus:
Suchbegriff ("SearchFor")name
Trennung ("Sep") =
Wert"Onar"
Zeilenende-Kennung ("EOL");

Mit "Split(Line, Sep)" wird zunächst anhand der Trennung " = "geteilt in
Teil 0: name
Teili 1: "Onar";
Verwendet wird davon Teil1, deswegen der Zusatz "(1)"

Dieses Zwischenergebnis wird nochmals gesplittet, wobei hier als Trennzeichen ";" (EOF) verwendet wird (Annahme: ";" kommt nur am Zeilenende vor) - da das zum Splitten verwendete Zeichen wegfällt, ist das Ergebnis nur noch
Teil 0:"Onar"

Grüße
bastla
Bitte warten ..
Mitglied: TerminatorVB
12.10.2010 um 18:13 Uhr
Ahh. Herzlichsten Dank genau sowas habe ich gesucht, allerdings will ich bei Filename nicht Onar.txt nehmen, weil das ist ja nicht der einzige NPC den es gibt. Ich hatte eigentlich die Idee da dann OpenFileDialog.FileName reinzuschreiben. Das müsste doch funktionieren oder?
Und nochwas: Wie mache ich da dann weiter um die anderen Sachen abzufragen?
Bitte warten ..
Mitglied: bastla
12.10.2010 um 18:38 Uhr
Hallo TerminatorVB!

Wie vorweg angeführt, soll der Ansatz oben eine schematische Darstellung (möglicher Techniken) sein - insbesondere, da mir noch nicht so ganz klar ist, was dann noch weiter passieren soll, musst Du Dir natürlich selbst die entsprechenden Ergänzungen / Änderungen überlegen ...
Wie mache ich da dann weiter um die anderen Sachen abzufragen?
Das ist vor allem Definitionssache: Was sind die "anderen Sachen"? Soferne Du die Zeilen 5 bis 9 meinst, entsprechen diese ja dem obigen Schema, sodass Du den Codeschnipsel als "Function" mit Übergabe des "Content"-Arrays und des Suchbegriffes und Rückgabe des Wertes verwenden könntest ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Powershell - In Textdatei suchen und ersetzen
gelöst Frage von Raaja89Batch & Shell5 Kommentare

Hallo Zusammen, ich habe einen Textdatei mit vielen aufeinander folgendenden Leerzeichen und wo an diversen Stellen Überschriften stehen. Ungefähr ...

Batch & Shell
Wort in Textdatei suchen
gelöst Frage von Nick.BBatch & Shell4 Kommentare

Ich wollte ein einzelnes Wort aus einer Textdatei suchen und als Variable speichern. Allerdings ist das Wort nicht das ...

Batch & Shell
Bestimmter Text aus einer Textdatei umgeändert in einer Variable speichern?
gelöst Frage von spookypoofBatch & Shell4 Kommentare

Hallo, Ich wollte den Inhalt aus einer Textdatei umgeändert in einer Variable speichern. Beispiel: Textdatei.txt beinhaltet z.B. "best" (ohne ...

PHP
Formulardaten mittels PHP in Textdatei senden - mit benutzerdefiniertem Text?
gelöst Frage von ububehPHP1 Kommentar

Hallo Gemeinde, folgenden Sachverhalt hab ich vor mir - und komm nicht weiter. Ziel ist es, eine Angabe im ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 4 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 18 StundenInternet3 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 21 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server16 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...