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-Key: 188882

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

Printed on: April 19, 2024 at 05:04 o'clock

Member: Karo
Karo Jul 31, 2012 at 10:00:42 (UTC)
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
Member: jogi1989
jogi1989 Jul 31, 2012 at 10:49:02 (UTC)
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
Member: Karo
Karo Jul 31, 2012 at 12:10:09 (UTC)
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
Member: jogi1989
jogi1989 Jul 31, 2012 at 12:22:38 (UTC)
Goto Top
OK Vielen Dank.

meine Frage ist jetzt nur, wie kann ich die Daten die ich ausgelesen habe als variable benutzen?
Member: Karo
Karo Jul 31, 2012 updated at 14:17:59 (UTC)
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
Member: bastla
bastla Jul 31, 2012 updated at 16:00:23 (UTC)
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
Member: jogi1989
jogi1989 Aug 01, 2012 at 07:30:34 (UTC)
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
Member: bastla
bastla Aug 01, 2012 at 08:38:27 (UTC)
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 ...