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, 6284 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 ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Windows Server
gelöst Terminalserver .ini Datei unter C:Windows (8)

Frage von geocast zum Thema Windows Server ...

Batch & Shell
gelöst Texteil anhand zweier Vorgaben aus Datei löschen (12)

Frage von tiforst zum Thema Batch & Shell ...

Batch & Shell
gelöst Variable aus ini Datei auslesen und weiterverwenden (17)

Frage von n0cturne zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Router & Routing
gelöst Ipv4 mieten (22)

Frage von homermg zum Thema Router & Routing ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...