Jump to content


This is a ready-only archive of the InstallSite Forum. You cannot post any new content here. / Dies ist ein Archiv des InstallSite Forums. Hier können keine neuen Beiträge veröffentlicht werden.
Photo

Import und Export einer String-Tabelle mit VBS


2 replies to this topic

AndreasD

AndreasD
  • Full Members
  • 14 posts

Posted 13 February 2013 - 07:15

Ich versuche mit dem folgenden Script, aus einer Projektdatei (.ISM) eine String-Tabelle zu exportieren, sie zu bearbeiten und danach wieder zu Importieren. Das Importieren funktioniert einwandfrei, nur bei dem exportieren werden mir nicht alle Strings exportiert (siehe Abschnitt EXPORTDATEI).
ZUR INFO:
Ich benutze InstallShield 2012 Premier Edition SP1 und das Projekt ist ein InstallScript-Projekt.

Vielen Dank im voraus für Euere Antworten
AndreasD

'/////////////////////////////////////////////////////////////////////////////
'BEGIN ImportExportStrings.vbs
' InstallShield ®
' © 2001 - 2006 Macrovision Corporation and/or Macrovision Europe
' Ltd. All Rights Reserved.
' This utility was designed to assist in the importing and exporting of string tables
' File Name: ImportExportStrings.vbs
' Description: Sample VBScript file imports or exports a string table text file
' Usage: To use the objects in this script, make sure you have the
' following items in place on your system:
' 1. InstallShield must be installed so
' the end-user automation is available
' 2. You must have Windows Scripting Host installed.(Wscript.exe)
' 3. The script expects the following command-line arguments,
' in this order:
' a. The fully qualified path to an existing .ism file.
' b. The fully qualified path to a text file for the string table entries
' c. Decimal language identifier
' d. Import or Export
'
' Sample: wscript.exe C:\dev\MyProject.ism C:\dev\MyProject_Stringtable.txt 1033 I
' NOTE: - Always call the wscript.exe from directory SYSWOW64
' - The first import language must be always german
'/////////////////////////////////////////////////////////////////////////////
' Parameters
'/////////////////////////////////////////////////////////////////////////////
If Wscript.Arguments.Count < 1 Then
Wscript.Echo "InstallShield Subfolder Utility" & _
vbNewLine & "1st argument is the full path to the .ism file" & _
vbNewLine & "2nd argument is the full path to the string table text file" & _
vbNewLine & "3rd argument is the decimal language identifier" & _
vbNewLine & "4th argument is either E or I for Export or Import"
Wscript.Quit 1
End If

' Create the end-user automation object
Dim ISWIProject
Set ISWIProject = CreateObject("ISWiAuto18.ISWiProject"): CheckError

' Open the project specified at the command line
ISWIProject.OpenProject Wscript.Arguments(0)

if(Wscript.Arguments(3)="E")then
StringsExport ISWIProject,Wscript.Arguments(1),Wscript.Arguments(2)
elseif(Wscript.Arguments(3)="I")then
StringsImport ISWIProject,Wscript.Arguments(1),Wscript.Arguments(2)
end if

' Save and close the project
ISWIProject.SaveProject: CheckError
ISWIProject.CloseProject: CheckError

'/////////////////////////////////////////////////////////////////////////////
' Export the string table

Sub StringsExport(byref p,byval path, byval language)
p.ExportStrings path, Date , language
Wscript.Echo "Exported String table for language " & language & " to " & path
End Sub
'/////////////////////////////////////////////////////////////////////////////

'/////////////////////////////////////////////////////////////////////////////
' Import the string table

Sub StringsImport(byref p,byval path, byval language)
p.ImportStrings path, language
Wscript.Echo "Imported String table for language " & language & " from " & path
End Sub
'/////////////////////////////////////////////////////////////////////////////

Sub CheckError()
Dim message, errRec
If Err = 0 Then Exit Sub
message = Err.Source & " " & Hex(Err) & ": " & Err.Description
Wscript.Echo message
Wscript.Quit 2
End Sub

'END ImportExportStrings.vbs

-------------------------------------------------------------------------------
EXPORTDATEI:
Hier ist die Exportdatei, angebliche String-Tabelle aus der ISM-Datei:
-------------------------------------------------------------------------------
IDS_COMPLUS_PROGRESSTEXT_COST Costing der COM+-Anwendung: [1]
IDS_COMPLUS_PROGRESSTEXT_INSTALL COM+-Anwendung installieren: [1]
IDS_COMPLUS_PROGRESSTEXT_UNINSTALL COM+-Anwendung deinstallieren: [1]
IDS_ERROR_130 Für dieses Setup ist Internet Information Server 4.0 oder höher für die Konfiguration von IIS Virtual Roots erforderlich. Stellen Sie sicher, dass Sie über IIS 4.0 oder höher verfügen.
IDS_ERROR_131 Für dieses Setup müssen Sie über Administratorrechte verfügen, um IIS Virtual Roots zu konfigurieren.
IDS_ERROR_27502 Es konnte keine Verbindung zum [2] hergestellt werden [3]. [4]
IDS_ERROR_27503 Fehler beim Abrufen des Versionsstrings vom [2] [3]. [4]
IDS_ERROR_27505 SQL-Skriptdatei konnte nicht geöffnet werden [2].
IDS_ERROR_27506 Fehler beim Ausführen des SQL-Skripts [2]. Zeile [3]. [4]
IDS_ERROR_27507 Für das Suchen nach oder Verbinden mit Datenbank-Servern muss MDAC installiert sein. Setup wird jetzt beendet.
IDS_ERROR_27508 Fehler beim Installieren der COM+ Anwendung [2]. [3]
IDS_ERROR_27509 Fehler beim Deinstallieren der COM+ Anwendung [2]. [3]
IDS_ERROR_27511 SQL-Skriptdatei [2] konnte nicht ausgeführt werden. Verbindung nicht offen: [3]
IDS_ERROR_27512 Fehler beim Beginn der Transaktionen für [2] '[3]'. Datenbank [4]. [5]
IDS_ERROR_27513 Fehler beim Übergeben der Transaktionen für [2] '[3]'. Datenbank [4]. [5]
IDS_ERROR_27514 Für diese Installation ist ein Microsoft SQL-Server erforderlich. Der angegebene Server '[3]' ist eine Microsoft SQL Server Desktop Engine (MSDE).
IDS_ERROR_27515 Fehler beim Aufrufen der Schemaversion von [2] '[3]'. Datenbank: '[4]'. [5]
IDS_ERROR_27516 Fehler beim Schreiben der Schemaversion nach [2] '[3]'. Datenbank: '[4]'. [5]
IDS_ERROR_27517 Die Installation erfordert für das Installieren von COM+-Anwendungen Administratorrechte. Melden Sie sich als Administrator an und wiederholen Sie diese Installation.
IDS_ERROR_27518 Die COM+-Anwendung "[2]" ist so konfiguriert, dass sie als NT-Service ausgeführt wird; dazu ist COM+ 1.5 oder höher auf dem System erforderlich. Da Ihr System COM+ 1.0 besitzt, wird diese Anwendung nicht installiert.
IDS_ERROR_27519 Fehler beim Aktualisieren der XML-Datei [2]. [3]
IDS_ERROR_27520 Fehler beim Öffnen der XML-Datei [2]. [3]
IDS_ERROR_27521 Dieses Setup erfordert MSXML 3.0 oder höher zum Konfigurieren von XML-Dateien. Bitte stellen Sie sicher, dass Sie über Version 3.0 oder höher verfügen.
IDS_ERROR_27522 Fehler beim Erstellen der XML-Datei [2]. [3]
IDS_ERROR_27523 Fehler beim Laden der Server.
IDS_ERROR_27524 Fehler beim Laden von NetApi32.DLL. Für die ISNetApi.dll muss NetApi32.DLL einwandfrei geladen sein und das Betriebssystem muss auf NT basieren.
IDS_ERROR_27525 Server konnte nicht gefunden werden. Stellen Sie sicher, dass der angegebene Server existiert. Der Servername darf nicht leer sein.
IDS_ERROR_27526 Unbekannter Fehler von ISNetApi.dll.
IDS_ERROR_27527 Der Puffer ist zu klein.
IDS_ERROR_27528 Zugriff verweigert. Überprüfen Sie die Administratorrechte.
IDS_ERROR_27529 Ungültiger Computer.
IDS_ERROR_27530 NetAPI hat einen unbekannten Fehler zurückgegeben. Systemfehler: [2]
IDS_ERROR_27531 Unbehandelte Ausnahme.
IDS_ERROR_27532 Ungültiger Benutzername für diesen Server oder diese Domäne.
IDS_ERROR_27533 Die Kennwörter, bei denen Groß- und Kleinschreibung beachtet werden muss, stimmen nicht überein.
IDS_ERROR_27534 Die Liste ist leer.
IDS_ERROR_27535 Verletzung der Zugriffsrechte.
IDS_ERROR_27536 Fehler beim Abrufen der Gruppe.
IDS_ERROR_27537 Fehler beim Hinzufügen eines Benutzers zur Gruppe. Überprüfen Sie, dass die Gruppe für diese Domäne oder diesen Server existiert.
IDS_ERROR_27538 Fehler beim Erstellen eines Benutzers.
IDS_ERROR_27539 ERROR_NETAPI_ERROR_NOT_PRIMARY wurde von NetAPI zurückgegeben.
IDS_ERROR_27540 Der angegebene Benutzer ist bereits vorhanden.
IDS_ERROR_27541 Die angegebene Gruppe ist bereits vorhanden.
IDS_ERROR_27542 Ungültiges Kennwort. Überprüfen Sie, dass das Kennwort Ihren Netzwerk-Regeln für Kennworte entspricht.
IDS_ERROR_27543 Ungültiger Name.
IDS_ERROR_27544 Ungültige Gruppe.
IDS_ERROR_27545 Der Benutzername darf nicht frei gelassen werden und muss in folgendem Format eingegeben werden: DOMÄNE\\Benutzername.
IDS_ERROR_27546 Fehler beim Laden oder Anlegen einer INI-Datei im TEMP-Verzeichnis des Benutzers.
IDS_ERROR_27548 Fehler beim Löschen der INI-Datei mit neuen Benutzerinformationen aus dem TEMP-Verzeichnis des Benutzers.
IDS_ERROR_27549 Fehler beim Abrufen des Primary Domain Controller (PDC).
IDS_ERROR_27550 Um einen Benutzer anzulegen, muss jedes Feld einen Wert besitzen.
IDS_ERROR_27551 ODBC-Treiber für [2] wurde nicht gefunden. Dies ist zum Verbinden mit [2] Datenbank-Servern erforderlich.
IDS_ERROR_27552 Fehler beim Erstellen der Datenbank [4]. Server: [2] [3]. [5]
IDS_ERROR_27553 Fehler beim Verbinden mit Datenbank [4]. Server: [2] [3]. [5]
IDS_ERROR_27554 Fehler beim Öffnen der Verbindung [2]. Mit dieser Verbindung sind keine gültigen Metadaten verknüpft.
IDS_PREREQUISITE_SETUP_BROWSE Originaldatei [SETUPEXENAME] von [ProductName] öffnen
IDS_PREREQUISITE_SETUP_INVALID Diese ausführbare Datei ist offenbar nicht die ausführbare Originaldatei für [ProductName]. Wenn zusätzliche Abhängigkeiten nicht mithilfe der Originaldatei [SETUPEXENAME] installiert werden, kann es sein, dass [ProductName] nicht ordnungsgemäß funktioniert. Möchten Sie die Originaldatei [SETUPEXENAME] suchen?
IDS_PREREQUISITE_SETUP_SEARCH Für diese Installation werden u. U. zusätzliche Abhängigkeiten benötigt. Es kann sein, dass [ProductName] ohne seine Abhängigkeiten nicht ordnungsgemäß funktioniert. Möchten Sie die ursprüngliche Datei [SETUPEXENAME] suchen?
IDS_PROGMSG_IIS_CREATEAPPPOOL Anwendungspool %s wird erstellt
IDS_PROGMSG_IIS_CREATEAPPPOOLS Anwendungspools werden erstellt...
IDS_PROGMSG_IIS_CREATEVROOT Virtuelles IIS-Verzeichnis %s wird erstellt
IDS_PROGMSG_IIS_CREATEVROOTS Virtuelle IIS-Verzeichnisse werden erstellt...
IDS_PROGMSG_IIS_CREATEWEBSERVICEEXTENSION Webdiensterweiterung wird erstellt
IDS_PROGMSG_IIS_CREATEWEBSERVICEEXTENSIONS Webdiensterweiterungen werden erstellt...
IDS_PROGMSG_IIS_CREATEWEBSITE IIS-Website %s wird erstellt
IDS_PROGMSG_IIS_CREATEWEBSITES IIS-Websites werden erstellt...
IDS_PROGMSG_IIS_REMOVEAPPPOOL Anwendungspool wird entfernt
IDS_PROGMSG_IIS_REMOVEAPPPOOLS Anwendungspools werden entfernt...
IDS_PROGMSG_IIS_REMOVESITE Website auf Port %d wird entfernt
IDS_PROGMSG_IIS_REMOVEVROOT Virtuelles IIS-Verzeichnis %s wird entfernt
IDS_PROGMSG_IIS_REMOVEVROOTS Virtuelle IIS-Verzeichnisse werden entfernt...
IDS_PROGMSG_IIS_REMOVEWEBSERVICEEXTENSION Webdiensterweiterung wird entfernt
IDS_PROGMSG_IIS_REMOVEWEBSERVICEEXTENSIONS Webdiensterweiterungen werden entfernt...
IDS_PROGMSG_IIS_REMOVEWEBSITES IIS-Websites werden entfernt...
IDS_PROGMSG_IIS_ROLLBACKAPPPOOLS Rollback der Anwendungspools wird durchgeführt...
IDS_PROGMSG_IIS_ROLLBACKWEBSERVICEEXTENSIONS Rollback der Webdiensterweiterungen wird durchgeführt...
IDS_PROGMSG_XML_COSTING Speicherplatzanalyse für XML-Dateien...
IDS_PROGMSG_XML_FILES Änderungen an XML-Datei werden durchgeführt...
IDS_SETUPEXE_EXPIRE_MSG Diese Setup ist gültig bis %s. Das Setup wird nun beendet.
IDS_SQLBROWSE_INTRO Wählen Sie aus der untenstehenden Liste der Server den Datenbank-Server aus, den Sie als Ziel verwenden möchten.
IDS_SQLLOGIN_DESC Datenbank-Server und Authentifizierungsmethode wählen.
IDS_SQLLOGIN_INTRO Wählen Sie den zu installierenden Datenbank-Server aus der untenstehenden Liste oder klicken Sie auf Durchsuchen, um eine Liste aller Datenbank-Server zu sehen. Sie können auch angeben, welche Authentifizierungsmethode bei der Anmeldung verwendet werden soll - mit den aktuellen Kennwörtern oder mit einer SQL-Anmeldungskennung und Kennwort.
IDS_SQLLOGIN_SERVER &Datenbank-Server:
IDS_SQLLOGIN_SQL SQL-Server-Authentifizierung mit Anmeldungskennung und Kennwort unten
IDS_SQLLOGIN_TITLE {&MSSansBold8}Datenbank-Server
IDS__IsBrowseButton Du&rchsuchen...
IDS__IsBrowseForAccount Nach Benutzerkonto durchsuchen
IDS__IsBrowseGroup Benutzerlistengruppe auswählen
IDS__IsBrowseUsernameTitle Wählen Sie einen Benutzernamen
IDS__IsConfirmPassword Kennwort &bestätigen:
IDS__IsCreateNewUserTitle Informationen über neuen Benutzer
IDS__IsCreateUserBrowse Informationen über n&euen Benutzer...
IDS__IsDomainOrServer &Domäne oder Server:
IDS__IsGroup Benutzerlisten&gruppe:
IDS__IsGroupLabel Benutzerlistengr&uppe:
IDS__IsLogonInfoDescription Geben Sie das Benutzerkonto an, das von dieser Anwendung verwendet werden soll. Benutzerkonten müssen das Format DOMÄNE\\Benutzername besitzen.
IDS__IsLogonInfoTitle {&MSSansBold8}Anmeldeinformationen
IDS__IsLogonInfoTitleDescription Geben Sie ein Benutzerkonto und Kennwort an.
IDS__IsLogonNewUserDescription Wählen Sie die untenstehende Schaltfläche, um Informationen über einen neuen Benutzer anzugeben, der während der Installation angelegt wird.
IDS__IsSelectDomainOrServer Eine Domäne oder einen Server auswählen
IDS__IsUserNameLabel &Benutzername:







Stefan Krueger

Stefan Krueger

    InstallSite.org

  • Administrators
  • 13,269 posts

Posted 13 February 2013 - 09:39

Das könnte einerseite bedeuten, dass irgendein Puffer voll ist. Oder dass die Funktion abstürzt und noch nicht alls Einträge auf die Platte geschrieben waren.

Du könntest mal versuchen, die Export-Funktion zu ändern indem du ein Start-Datum angibst. Damit würdest du die vielen Standard-Einträge weglassen. Siehe Doku zur ExportStrings Methode.

Funktioniert der Export denn in der IDE? (um einzugrenzen ob das Problem nur mit dem Skript auftritt)

AndreasD

AndreasD
  • Full Members
  • 14 posts

Posted 13 February 2013 - 10:42

Hallo Stefan,

der Export aus der IDE funktioniert einwandfrei. Das irgendein Puffer voll ist kann ich zwar nicht ausschließen ist aber sehr unwahrscheinlich. Die Funktion stürzt auch nicht ab und kommt ohne Fehler zum Ende. ABER ich habe bei der Export-Funktion das Datum 0 eingeben (siehe unten) und bekomme jetzt alle Einträge aus der String-Tabelle exportiert, SUPER und DANKE.
Was ich jetzt nicht hin bekomme ist ein Start-Datum einzugeben und dann nur die passenden Strings in die Exportdatei zu exportieren, z.B.
p.ExportStrings path, 01-01-2013, language

Vielen Dank nochmal für die zeitnahe Antwort
Viele Grüße
AndreasD


DATUM auf 0 gesetzt
'/////////////////////////////////////////////////////////////////////////////
' Export the string table

Sub StringsExport(byref p,byval path, byval language)
p.ExportStrings path, 0, language
Wscript.Echo "Exported String table for language " & language & " to " & path
End Sub
'/////////////////////////////////////////////////////////////////////////////