jogi1989
Goto Top

Wert aus ini Datei, einer Variable in VBS übergeben

Wert aus ini File einer Variable übergeben

Hallo zusammen,

Ich habe ein Probelm und zwar, will ich eine VBA datei schreiben,
in der ich die Fensterposition einzelner Fenster festlegen kann.

die Positionen sollen in einer Ini Datei stehen

mit meinem VBA scribt möchte ich die Werte aus der Ini Datei auslesen und mit einer Variable diese Werte benutzen.

Ich weiß nicht wie ich das programmieren soll

ich hoffe Ihr könnt mir helfen

vielen Dank im voraus!

MFG jogi

Content-ID: 188882

Url: https://administrator.de/contentid/188882

Ausgedruckt am: 22.11.2024 um 10:11 Uhr

Karo
Karo 31.07.2012 um 12:00:42 Uhr
Goto Top
Hi,

...ähm...was Du da geschrieben hast ist nicht VB! Möchtest Du jetzt per Batch (cmd, bat) auslesen oder VB oder VBS?
Dann solltest Du nach (VBS) CreateObject("Scripting.FileSystemObject") oder (VB) 'Open For Input As' suchen.

bye
Karo
jogi1989
jogi1989 31.07.2012 um 12:49:02 Uhr
Goto Top
Achso, ich habe da noch nicht wirklich viel ahnung von.

Das soll in VBS geschrieben werden.
kannst du mir da vllt weiterhelfen am besten mit einem Beispiel.
oder einem Link der mir weiterhelfen könnte
Karo
Karo 31.07.2012 um 14:10:09 Uhr
Goto Top
Hi,

hier ein einfaches Script zum auslesen einer Datei.

 Option Explicit 
 Dim oFSO, sFile, oFile, sText 
 Set oFSO = CreateObject("Scripting.FileSystemObject")   
 sFile = "DATEINAME"   
 If oFSO.FileExists(sFile) Then 
  Set oFile = oFSO.OpenTextFile(sFile, 1) 
   Do While Not oFile.AtEndOfStream 
    sText = oFile.ReadLine 
     If Trim(sText) <> "" Then   
      WScript.Echo sText 
     End If 
   Loop 
  oFile.Close 
 Else 
  WScript.Echo "ACHTUNG! Datei nicht vorhanden!"   
 End If 

bye
Karo
jogi1989
jogi1989 31.07.2012 um 14:22:38 Uhr
Goto Top
OK Vielen Dank.

meine Frage ist jetzt nur, wie kann ich die Daten die ich ausgelesen habe als variable benutzen?
Karo
Karo 31.07.2012 aktualisiert um 16:17:59 Uhr
Goto Top
sText ist doch schon eine Variable. Ansonsten mußt Du mit Arrays arbeiten.

 Option Explicit 
 Dim oFSO, sFile, oFile, sText(), count 
 Set oFSO = CreateObject("Scripting.FileSystemObject")   
 sFile = "DATEINAME"   
 If oFSO.FileExists(sFile) Then 
  Set oFile = oFSO.OpenTextFile(sFile, 1) 
   Do While Not oFile.AtEndOfStream 
    count=count+1
    sText(count) = oFile.ReadLine 
     If Trim(sText(count)) <> "" Then   
      WScript.Echo sText(count) 
     End If 
   Loop 
  oFile.Close 
 Else 
  WScript.Echo "ACHTUNG! Datei nicht vorhanden!"   
 End If 

Somit sind die Werte in sText(1) bis sText(x)

Karo
bastla
bastla 31.07.2012 aktualisiert um 18:00:23 Uhr
Goto Top
... dann würde ich aber gleich am Stück einlesen:
Set oFSO = CreateObject("Scripting.FileSystemObject")   
sFile = "DATEINAME"  
If oFSO.FileExists(sFile) Then
  aLines = Split(oFSO.OpenTextFile(sFile).ReadAll, vbCrLf)
  For Each sLine In aLines
    If Trim(sLine) <> "" Then  
       MsgBox sLine
    End If
  Loop
Else
  MsgBox "ACHTUNG! Datei nicht vorhanden!"  
End If
Unterschied: Es werden so auch Zeilen, die leer sind oder nur Leerzeichen enthalten, erfasst (aber nicht ausgegeben) ...

BTW: Split() könnte auch für die Weiterverarbeitung nützlich sein ...

Anmerkung: VBS und "Fensterposition" passt nicht so ganz gut, daher vermutlich doch VB(A), und deswegen die MsgBox ...

Grüße
bastla
jogi1989
jogi1989 01.08.2012 um 09:30:34 Uhr
Goto Top
Ja stimmt eher in VBA, Vielen dank, das hat mir schon etwas weiter geholfen.
jetzt bekomme ich jede zeile ausgelesen

der Inhalt meiner .Ini datei sie im etwas so aus


vom 01.08.2012

Left=50 Top=50


objIE.Visible = False
'objIE.TheaterMode = True
'objIE.Visible = True
'iHeight = objIE.Height
'iWidth = objIE.Width
'objIE.TheaterMode = False
objIE.Left = ... <-------------
objIE.Top = ... <-------------
objIE.Height = 800
objIE.Width = 800
objIE.Navigate("http://...")
objIE.AddressBar = False
objIE.StatusText = False
objIE.Toolbar = False
objIE.Visible=True


ich würde gern die wete Top und Left aus der Ini Datei als variable bei objIE.Left und
objIE.Top stehen haben, das bekomme ich leider immer noch nicht hin face-sad
bastla
bastla 01.08.2012 um 10:38:27 Uhr
Goto Top
Hallo jogi1989!

Abgesehen davon, dass es mehrere Werte in einer Zeile unnötig schwer machen: neben dem schon erwähnten "Split()" solltest Du Dir noch "InStr()" ansehen (und klären, ob denn zumindest die Struktur der Zeile - mit genau dem einen Leerzeichen - immer vorausgesetzt werden kann; anderenfalls findest Du Dich bei "RegExp" wieder) ...

Grüße
bastla

P.S.: Wie "Code"-Formatierung geht, findest Du hier ...