Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Zeile aus Ini Datei löschen

Frage Entwicklung VB for Applications

Mitglied: OliverBecht

OliverBecht (Level 1) - Jetzt verbinden

25.01.2008, aktualisiert 14:41 Uhr, 6303 Aufrufe, 8 Kommentare

Hallo ich habe eine Ini Datei aus der sollte einfach eine bestimmte Zeile bzw. Wörter gelöscht werden und nachher wieder die neue Zeile bzw. die Zeichenfolge eingefügt werden.
Geändert werden muss der Eintrag LastUser=Test


Hier ist meine INI


------------------------------------------------------------------
Login Settings
// ------------------------------------------------------------------
[Login Settings]
ShowLogin=true
LastUser=Test
LastDatabase=TestDB

Ich habe auch schon ein VB Skript mit dem ich den Eintrag schreibe, jedoch kommt hier der Eintrag immer am Schluß


'Einträge für CEG in ini schreiben
Const ForReading = 1, ForWriting = 2, ForAppending = 8
Dim fso
Dim g
Dim f
Dim benutzername
Dim fs, net, objectDomain, wshshell, objectUser

'Zugriff auf Objecte
Set fs = CreateObject("Scripting.FileSystemObject")
Set net = CreateObject("WScript.Network")
Set wshshell = CreateObject("Wscript.Shell")

'Username ermitteln
benutzername = net.username

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\test.ini", ForAppending, True)
f.writeline "[Login Settings]"
f.writeline "LastUser=" & Benutzername

Set fso = CreateObject("Scripting.FileSystemObject")
Set f = fso.OpenTextFile("C:\test.ini", 1, True)


Tausend Dank für eure Hilfe
Mitglied: bastla
25.01.2008 um 11:53 Uhr
Hallo OliverBecht!

Wenn es nur darum geht, immer "LastUser=Test" durch "LastUser=Benutzername" zu ersetzen, dann etwa so:
01.
Const IniFile = "C:\test.ini" 
02.
 
03.
Const ForReading = 1, ForWriting = 2, ForAppending = 8  
04.
Set fso = CreateObject("Scripting.FileSystemObject") 
05.
Set net = CreateObject("WScript.Network") 
06.
 
07.
Set f = fso.OpenTextFile(IniFile, ForReading) 
08.
Inhalt = f.ReadAll 
09.
 
10.
Set f = fso.OpenTextFile(IniFile, ForWriting, True) 
11.
f.Write Replace(Inhalt, "LastUser=Test", "LastUser=" & net.username) 
12.
f.Close
Grüße
bastla
Bitte warten ..
Mitglied: OliverBecht
25.01.2008 um 12:48 Uhr
Schon mal vielen Dank für deine Antwort.
Ich muss nur den Wert hinter LastUser= auf den angemeldeten Benutzernamen bringen und nicht austauschen
Währe echt nett wenn Du mir hier nochmals helfen könntest.
Bitte warten ..
Mitglied: bastla
25.01.2008 um 12:59 Uhr
Hallo OliverBecht!

Ich muss nur den Wert hinter LastUser= auf den angemeldeten Benutzernamen bringen und nicht austauschen
Eigentlich wäre das Ziel meines "Austausch"-Vorschlages, dass dort (und zwar an der selben Position innerhalb der Datei wie vorher), wo zunächst
01.
LastUser=Test
stand, nachher
01.
LastUser=Benutzername (des angemeldeten Benutzers)
zu finden ist (womit eigentlich für mich Dein Ziel erreicht scheint) ...

Was hat denn Dein Test ergeben?

Grüße
bastla
Bitte warten ..
Mitglied: rubberduck
25.01.2008 um 13:23 Uhr
Ist der Wert hinter LastUser= variabel, oder ist er immer gleich?
Wenn immer gleich, kann ich mich nur Bastla anschliessen.

Die Goldlösung wäre folgende:
Du schreibst den Inhalt der Datei in ein Array suchst Deinen Wert, ersetzt es und schreibst es am Schluss zurück

Hört sich vielleicht etwas kompliziert an, aber wenn Du variable Werte hast ist es 1a.
Bitte warten ..
Mitglied: OliverBecht
25.01.2008 um 13:34 Uhr
Nein der Wert hinter LastUser= ist immer variabel und nicht gleich.
Schon mal danke
Bitte warten ..
Mitglied: stbewo
25.01.2008 um 13:41 Uhr
Oder Du
trennst Dein INI File in Part1.ini

Part1.ini ---------------
Login Settings
[Login Settings]
ShowLogin=true
und
Part2.ini ---------------
LastDatabase=TestDB
und mit

type part1.ini > login.ini
echo LastUser=%username% >> login.ini
type part2.ini >> login.ini

hast Du ein geändertes INI File.

Gruß
Stefan
Bitte warten ..
Mitglied: rubberduck
25.01.2008 um 14:32 Uhr
Versuchs mal so:

01.
... 
02.
.. 
03.
04.
Set f = fso.OpenTextFile("C:\test.ini", 1, True) 
05.
arrFile = Split(f.ReadAll, vbCrLf) 
06.
f.Close 
07.
 
08.
For i = 0 To UBound(arrFile) 
09.
    If InStr(arrFile(i), "LastUser") <> 0 Then arrFile(i) = "LastUser=" & net.UserName 
10.
Next 
11.
 
12.
Set f = fso.OpenTextFile("C:\test.ini", 2, True) 
13.
f.Write (Join(arrFile, vbCrLf)) 
14.
f.Close
Bitte warten ..
Mitglied: OliverBecht
25.01.2008 um 14:41 Uhr
Tausend Dank jetzt hat es geklappt.....
Bitte warten ..
Ähnliche Inhalte
Windows Server
PowerShell Inhalt einer csv Datei löschen (3)

Frage von makaroni zum Thema Windows Server ...

Batch & Shell
gelöst Doppelte Dateneinträge per Batch aus Datei löschen? HILFE (7)

Frage von freshman2017 zum Thema Batch & Shell ...

Batch & Shell
Batch Datei um Windows Update zu löschen (1)

Frage von lordofremixes zum Thema Batch & Shell ...

Windows Server
Datei nach dem löschen weiterhin vorhanden (5)

Frage von derBadner zum Thema Windows Server ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Festplatten, SSD, Raid
PC stellt nach dem Bios ab (18)

Frage von uridium69 zum Thema Festplatten, SSD, Raid ...

iOS
16 iPads zentrall verwalten (18)

Frage von simonlohr zum Thema iOS ...

Viren und Trojaner
Ransomware .nm4 (15)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Windows 7
Freeware MSI Tool (13)

Frage von uridium69 zum Thema Windows 7 ...