WinFuture-Forum.de: Txt Datei Zeile überschreiben - WinFuture-Forum.de

Zum Inhalt wechseln

Nachrichten zum Thema: Entwicklung
Seite 1 von 1

Txt Datei Zeile überschreiben


#1 Mitglied ist offline   Picard 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. Januar 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Puffbohne

geschrieben 06. Februar 2008 - 14:59

Hi,

ich habe hier ein Script wo ich eine TXT oder INI durchsuche bis zu einer bestimmten Zeile und dort diese Zeile auch bekomme.

Jetzt möchte ich diese durch eine neue ersetzen.

Habe schon ein bissel probiert. Aber bekomme es nicht hin.
Kann mir jemand Zeigen was ich tun muss?

option explicit

dim fso, objDatei
dim strZeile, strWort_arr, strInput, result,title
dim intZeile, i
dim MAX_LINE

intZeile=27

set fso = createobject("scripting.filesystemobject")
set objDatei = fso.opentextfile("C:\test.txt",1)

for i=1 to 10
 strZeile=objDatei.readline
next

strZeile=objDatei.writeline "Test neu"

msgbox strZeile

MFG

Picard
0

Anzeige



#2 Mitglied ist offline   Picard 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. Januar 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Puffbohne

geschrieben 11. Februar 2008 - 07:54

Sorry aber weiß denn keiner wie ich die Zeile überschreibe die ich in den Script schon ausgelesen habe?
MFG

Picard
0

#3 Mitglied ist offline   Bullayer 

  • Gruppe: aktive Mitglieder
  • Beiträge: 3.004
  • Beigetreten: 08. Februar 08
  • Reputation: 34
  • Geschlecht:Männlich
  • Wohnort:DE-RLP-COC

geschrieben 11. Februar 2008 - 08:32

Datei Zeile für Zeile lesen (for-Schleife), nach jedem Lesen prüfen, ob man die richtige Zeile hat. Wenn ja, dann schreiben, wenn nein weiterlesen.
Sonntags kein Support - (2. Mose 20,8-11)
0

#4 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 12. Februar 2008 - 10:38

Hab hier kurz was zusammengebastelt. Meine Lösung sucht in den ersten intMaxZeilen nach einem Wort und ersetzt falls gefunden, die ganze Zeile. Die Ausgabe geht in eine temporäre Datei die am Ende einfach umbenannt wird.

Option Explicit

Dim objFSOlesen, objDateiLesen
Dim objFSOschreiben, objDateiSchreiben
Dim strDateiname
Dim strZeile
Dim intMaxZeile, intZeile

strDateiname = "test.txt" 'Name der zu bearbeitenden Datei
intMaxZeile = 5 'Wie viele Zeilen sollen maximal "durchsucht" werden

Set objFSOlesen = CreateObject("Scripting.FileSystemObject")
Set objFSOschreiben = CreateObject("Scripting.FileSystemObject")

'Die Datei öffnen, außerdem eine temporäre Datei, in die wieder geschrieben wird
Set objDateiLesen = objFSOlesen.OpenTextFile(strDateiname, 1)
Set objDateiSchreiben = objFSOschreiben.CreateTextFile("temp.txt", True)

intZeile = 1

Do Until objDateiLesen.AtEndOfStream 'So lange lesen bis zum Schluss
	strZeile = objDateiLesen.ReadLine
	
	If intZeile <= intMaxZeile And InStr(strZeile, "suchwort") Then	'Falls das Wort suchwort in den erst intMaxZeilen Zeilen vorkommt, dann ersetze diese Zeile
		objDateiSchreiben.WriteLine "Ersetzt"
	Else 'sonst Schreibe einfach die Zeile
		objDateiSchreiben.WriteLine strZeile
	End If
	
	intZeile = intZeile + 1
Loop

objDateiLesen.Close
objDateiSchreiben.Close

'Die Originaldatei löschen und die temporäre Datei umbenennen
Set objDateiLesen = objFSOlesen.GetFile(strDateiname)
Set objDateiSchreiben = objFSOschreiben.GetFile("temp.txt")

objDateiLesen.Delete
objDateiSchreiben.Move(strDateiname)

Set objFSOlesen = Nothing
Set objFSOschreiben = Nothing


Ich hoffe, dass entspricht dem geforderten.

Gruß,
Stefan
0

#5 Mitglied ist offline   Picard 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. Januar 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Puffbohne

geschrieben 12. Februar 2008 - 18:08

Guten Abend,

ich danke euch! Besonders Diewie :-)

Ich werde es Morgen mal testen. Komme in Moment nicht dazu.

Ich schreibe euch ob es funktioniert hat oder nicht!!!

DANKE!

MFG

Picard
MFG

Picard
0

#6 Mitglied ist offline   Picard 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. Januar 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Puffbohne

geschrieben 13. Februar 2008 - 09:16

Hi,

soweit funktioniert das Script. Vielen Dank!
Sag mal kann man es erweitern und die Systemlautstärke von der Soundkarte auf einen bestimmten Wert stellen?

Geht das?

MFG

Picard
MFG

Picard
0

#7 Mitglied ist offline   Diewie 

  • Gruppe: aktive Mitglieder
  • Beiträge: 409
  • Beigetreten: 18. Juni 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Geisenhausen / München

geschrieben 13. Februar 2008 - 14:59

Nein, nicht so einfach, denn man kann mit VBS nicht direkt auf API Funktionen zurückgreifen. Entweder du programmierst dir in einer richtigen Programmiersprache ein Tool dafür oder du suchst dir ein fertiges Kommandozeilen Tool, das du aus VBS heraus aufrufst.
Es gibt auch VBS Skripte, die die sndvol.exe (Vista) oder sndvol32.exe (XP) aufrufen und über SendKeys die Lautstärke verstellen.

Gruß,
Stefan
0

#8 Mitglied ist offline   Picard 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. Januar 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Puffbohne

geschrieben 13. Februar 2008 - 16:48

Danke für deine Antwort...solche Tools habe ich gefunden.
Nur es soll ja immer auf eine bestimmte lautstärke...naja und wenn jemand schon mittel eingestellt hat und dann komme ich mit 2 mal BildHoch damit der Regler hoch geht ist es sehr laut.

Man könnte höchstens, fällt mir gerade ein, erst 10 mal runter und dann 2 mal hoch. :-)

Hmm...kann man herausfinden ob der haken und drin ist bei Ton aus oder nicht?


Gruß

Picard
MFG

Picard
0

#9 Mitglied ist offline   Picard 

  • Gruppe: aktive Mitglieder
  • Beiträge: 125
  • Beigetreten: 04. Januar 06
  • Reputation: 0
  • Geschlecht:Männlich
  • Wohnort:Puffbohne

geschrieben 14. Februar 2008 - 07:50

Hi,

also ich habe diesen Code. Damit kann ich den Sound verstellen...somit wird er immer auf eine Mindestlautstärke gestellt.

Aber hast du noch eine Idee wie ich abfangen kann ob der Haken unten drin ist oder nicht?

Set WSHShell = CreateObject("WScript.Shell")

FensterTitel1 = "Master Volume"
FensterTitel2 = "Play Control"
If Not (WSHShell.AppActivate(FensterTitel1)) And Not (WSHShell.AppActivate(FensterTitel2)) Then WSHShell.Run "Sndvol32.exe"

If Not (WartenBisAktiv(FensterTitel1, 5)) And Not (WartenBisAktiv(FensterTitel2, 5)) Then
	Wscript.Echo ("Error: Sound nicht gefunden!")
	Wscript.Quit
End If

On Error Resume Next
OS = WSHShell.RegRead("HKLM\Software\Microsoft\Windows NT\CurrentVersion\ProductName")
If InStr(OS, "XP") Then
WSHShell.SendKeys ("{TAB}")
WSHShell.SendKeys ("{PGDN}")
WSHShell.SendKeys ("{PGDN}")
WSHShell.SendKeys ("{PGDN}")
WSHShell.SendKeys ("{PGUP}")
Else
WSHShell.SendKeys "%(l)"
End If

WSHShell.SendKeys "%{F4}"

Function WartenBisAktiv(FensterTitel, ZeitLimit)
 WarteZeit = 100
 Zeit = ZeitLimit* 100
  Do Until WSHShell.AppActivate(FensterTitel) or (Zeit <= 0)
  WScript.Sleep WarteZeit
  Zeit = Zeit - WarteZeit
  Loop
 WartenBisAktiv = (Zeit > 0)
End Function


Danke!
MFG

Picard
0

Thema verteilen:


Seite 1 von 1

1 Besucher lesen dieses Thema
Mitglieder: 0, Gäste: 1, unsichtbare Mitglieder: 0