2012-03-12 8 views
-3

ヘイスクリプター私はここに私のhtaがロードされ、テキストファイルに保存された配列を持っています。今私はこれを変更し、この場所にファイルの最初の行を格納したい: strUserProfile & "/CAD_Kunde.txt"とこの部分の残りの部分:i:\CAD_Kunden.txt。私の問題は、私は今どのように両方の部分が同じ関数で必要なので、この配列を分割することはありません。ユーザーTeemuはスクリプトでほとんどの変更を行っています。誰かが私を助けることを願っています。ここでは、より良い理解のための私のコードは次のとおりです。 EDIT:投票ダウンklicking停止@all私は私の質問を説明し、私の英語にする方法今didntの最高javascript別の場所に2つの部分を保存するには分割する

<html> 
<head> 
<title>CATIA Starttool</title> 
<HTA:APPLICATION 
    ID="myCATIA" 
    APPLICATIONNAME="myCatia" 
    SCROLL="no" 
> 
//****** Check if CAD_Kunde.txt exists when not create file 
<SCRIPT Language="VBScript"> 
Option Explicit 
Set objShell=CreateObject("Wscript.Shell") 
strUserProfile=objShell.ExpandEnvironmentStrings("%USERPROFILE%") 
dim filesys, filetxt, objShell, strUserProfile 
Const ForReading = 1, ForWriting = 2, ForAppending = 8 
Set filesys = CreateObject("Scripting.FileSystemObject") 
If not filesys.FileExists(strUserProfile & "/CAD_Kunde.txt") Then 
    Set filetxt = filesys.OpenTextFile(strUserProfile & "/CAD_Kunde.txt", ForWriting, True) 
    filetxt.WriteLine ("1") 
    filetxt.WriteLine ("BEHR;B18 SP4;B18 SP7;0") 
    filetxt.WriteLine ("AUDI;B19 SP3;0") 
    filetxt.WriteLine ("BMW;B19 SP3;0") 
    filetxt.WriteLine ("BIT;B18 SP4;B19 SP3;B16 SP9;0") 
    filetxt.WriteLine ("CHRYSLER;B18 SP4;0") 
    filetxt.WriteLine ("CAE_64;B19 SP3;0") 
    filetxt.WriteLine ("CNHTC;B19 SP3;0") 
    filetxt.WriteLine ("DAF;B19 SP3;0") 
    filetxt.WriteLine ("DASSAULT;B18 SP7;B19 SP3;0") 
    filetxt.WriteLine ("DFCV;B19 SP3;0") 
    filetxt.WriteLine ("FORD;B18 SP4;0") 
    filetxt.WriteLine ("FREIGHTL;B19 SP3;0") 
    filetxt.WriteLine ("FUSO;B19 SP3;0") 
    filetxt.WriteLine ("HINO;B19 SP3;0") 
    filetxt.WriteLine ("HONDA;B19 SP3;0") 
    filetxt.WriteLine ("IVECO;B19 SP3;0") 
    filetxt.WriteLine ("MAN;B19 SP3;0") 
    filetxt.WriteLine ("NISSAN;B19 SP3;0") 
    filetxt.WriteLine ("MB;B19 SP3;0") 
    filetxt.WriteLine ("PACCAR;B19 SP3;0") 
    filetxt.WriteLine ("PORSCHE;B19 SP3;0") 
    filetxt.WriteLine ("PORSCHE_HYBRID_DX;B19 SP3;0") 
    filetxt.WriteLine ("PSA;B19 SP3;0") 
    filetxt.WriteLine ("RENAULT;B19 SP3;0") 
    filetxt.WriteLine ("RVI;B18 SP4;0") 
    filetxt.WriteLine ("SCANIA;B19 SP3;0") 
    filetxt.WriteLine ("TELCO;B19 SP3;0") 
    filetxt.WriteLine ("UD_TRUCK;B17 SP4;0") 
    filetxt.WriteLine ("VOLVO_CAR;B18 SP4;0") 
    filetxt.WriteLine ("VOLVO_TRUCK;B19 SP3;0") 
    filetxt.WriteLine ("V5_MM;B18 SP4;0") 
    filetxt.WriteLine ("V5_BM;B19 SP3;0") 
    filetxt.WriteLine ("V5_TEST;B19 SP9;0") 
    filetxt.WriteLine ("VW;B19 SP3;0") 
    filetxt.WriteLine ("") 
    filetxt.Close 
End If 

</script> 

//****** Open last used environment and set it as default selection 
<script type="text/javascript"> 

// Reads textfile, file is created automatically, if not exist 
function readCustomers(){ 
var fso,iStream,cust,n,tarr; 
shell=new ActiveXObject('WScript.Shell'); 
userPath=shell.ExpandEnvironmentStrings('%UserProfile%'); 
customers={}; 
fso=new ActiveXObject('Scripting.FileSystemObject'); 
iStream=fso.OpenTextFile(userPath+'/CAD_Kunde.txt',1,true); 
cust=iStream.ReadLine(); 
for(n=0;!iStream.AtEndOfStream;n++){ 
    tarr=iStream.ReadLine().split(';'); 
    customers[n]=new Customer(tarr);   
} 
iStream.Close(); 
customers[0].selectionElement.selectedIndex=cust; 
alert(cust); 
    customers[cust].createReleaseOptions(cust); 
window.activeCustomer=cust; 
return; 
} 

// Customer (environment) constructor function 
function Customer(txt){ 
    var n,x=0; 
    this.selectionElement=document.getElementById('select1'); 
    this.customerName=txt[0]; 
    this.catiaRelease=[]; 
    for(n=1;n<txt.length-1;n++){ 
     this.catiaRelease[n-1]=txt[n]; 
     x++; 
    } 
    this.len=x; 
    this.defaultOption=parseInt(txt[txt.length-1]); 
    this.selected=false; 
    this.createCustomerOption(); 
} 

// Creates customer (environment) options 
Customer.prototype.createCustomerOption=function(){ 
    var opt; 
    opt=document.createElement('OPTION'); 
    opt.text=this.customerName; 
    opt.value=this.customerName; 
    this.selectionElement.add(opt); 
    return; 
} 

// Creates release options 
Customer.prototype.createReleaseOptions=function(idx){ 
    var target,n,opt; 
    target=document.getElementById('select2'); 
    target.length=0; 
    for(n=0;n<this.len;n++){ 
     opt=document.createElement('OPTION'); 
     opt.text=this.catiaRelease[n]; 
     opt.value=this.catiaRelease[n]; 
     target.add(opt);  
    } 
    target[this.defaultOption].selected=true; 
    //target[0].selected=true; // Move comment line above, if this option is used 
    window.activeCustomer=idx; 
    return; 
} 

// Saves textfile 
function saveCustomers(){ 
var fso,oStream,n,m,str='',cust=document.getElementById('select1');eos=cust.length; 
fso=new ActiveXObject('Scripting.FileSystemObject'); 
oStream=fso.OpenTextFile(userPath+'/CAD_Kunde.txt',2,true); 
oStream.WriteLine(cust.selectedIndex); 
for(n=0;n<eos;n++){ 
    str=''; 
    str+=customers[n].customerName+';'; 
    for(m=0;m<customers[n].len;m++){ 
     str+=customers[n].catiaRelease[m]+';'; 
    } 
    str+=customers[n].defaultOption; 
    oStream.WriteLine(str); 
} 
oStream.Close(); 
} 


function OpenAction(object) { 
    self.resizeTo(299,299); 
    OpenActionVB(); 
    readCustomers(); 

} 

function RunScript(object) { 
    saveCustomers(); 
    BetriebssystemKommando(object.select1.options[object.select1.selectedIndex].value, 
          object.select2.options[object.select2.selectedIndex].value, 
          select3=document.getElementById('OSName'), 
          object.select4.options[object.select4.selectedIndex].value, 
          object.select5.options[object.select5.selectedIndex].value, 
          object.select6.options[object.select6.selectedIndex].value); 
} 
+0

トリミングできますか? –

+0

私は今それをトリミングしました。 – user1225282

+0

この質問は現在の形では答えられません。一般的に、コードスニペットにスクロールバーがある場合は、間違っています。 – jbabey

答えて

0

されていませんここでは、再び、です:)。

<SCRIPT type="text/javascript"> 
// ** CREATE CUSTOMER-OBJECT 
function Customer(txt){ 
    var n,x=0; 
    this.selectionElement=document.getElementById('select1'); 
    this.customerName=txt[0]; 
    this.catiaRelease=[]; 
    for(n=1;n<txt.length;n++){ 
     this.catiaRelease[n-1]=txt[n]; 
     x++; 
    } 
    this.len=x; 
    this.selected=false; 
    this.createCustomerOption(); 
} 

// ** CREATE CUSTOMER OPTIONS 
Customer.prototype.createCustomerOption=function(){ 
    var opt; 
    opt=document.createElement('OPTION'); 
    opt.text=this.customerName; 
    opt.value=this.customerName; 
    this.selectionElement.add(opt); 
    return; 
} 

// ** CREATE RELEASE OPTIONS 
Customer.prototype.createReleaseOptions=function(idx){ 
    var target,n,opt; 
    target=document.getElementById('select2'); 
    target.length=0; 
    for(n=0;n<this.len;n++){ 
     opt=document.createElement('OPTION'); 
     opt.text=this.catiaRelease[n]; 
     opt.value=this.catiaRelease[n]; 
     target.add(opt); 
    } 
    target[0].selected=true; 
    window.activeCustomer=idx; 
    return; 
} 

// *** SAVE DEFAULT SELECTION FOR CURRENT USER ONLY 
function saveCustomers(){ 
    var fso,oStream,n,m,str='',cust=document.getElementById('select1'),eos=cust.length,shell,userPath; 
    shell=new ActiveXObject('WScript.Shell'); 
    userPath=shell.ExpandEnvironmentStrings('%UserProfile%'); 
    fso=new ActiveXObject('Scripting.FileSystemObject'); 
    oStream=fso.OpenTextFile(userPath+'/DEFCATIASEL.txt',2,true); // * SAVE THE DEFAULT SELECTION 
    oStream.WriteLine(cust.selectedIndex); 
    oStream.Close(); 
    return; 
} 

// *** READ ENVIRONMENT FROM SERVER AND DEFAULT SELECTION FROM CURRENT USER FILE 
function readCustomers(){ 
    var fso,iStream,cust,n,tarr,shell,userPath; 
    customers={}; 
    shell=new ActiveXObject('WScript.Shell'); 
    fso=new ActiveXObject('Scripting.FileSystemObject');  
    userPath=shell.ExpandEnvironmentStrings('%UserProfile%'); 
    iStream=fso.OpenTextFile(userPath+'/DEFCATIASEL.txt',1,true); // * READ THE DEFAULT SELECTION 
    try{ 
     cust=iStream.ReadLine(); 
    } catch(e){cust=0;} 
    iStream.Close(); 
    iStream=fso.OpenTextFile('YOUR_SERVER_PATH/CAD_Kunde.txt',1,false); // * READ ENVIRONMENTS AND RELEASES FROM SERVER 
    for(n=0;!iStream.AtEndOfStream;n++){ 
     tarr=iStream.ReadLine().split(';'); 
     customers[n]=new Customer(tarr); 
    } 
    iStream.Close(); 
    customers[0].selectionElement.selectedIndex=cust; // * SELECTS THE DEFAULT ENVIRONMENT 
    customers[cust].createReleaseOptions(cust); 
    window.activeCustomer=cust; 
    return; 
} 
</SCRIPT> 

このシステムの場合、CAD_Kunde.txtから「リリース番号」を削除する必要があります。したがって、次のようなファイルを使用します。

BEHR;B18 SP4;B18 SP7 
AUDI;B19 SP3 
BIT;B18 SP4;B19 SP3;B16 SP9 

このファイルは、新しい環境またはリリースで手動で更新する必要があります(テキストエディタを使用)。

+0

ありがとうTeemuそれは私が欲しいものを正確にやっている。存在しないときにuserprofileにDEFAULTSEL.txtを作成する部分をエラーを防ぐために追加します。それが必要な時に、グローバルな新しい環境とrealeasesを追加するために、サーバー上のCAD_kunde.txtが欲しかったことはそうです。私はあなたの答えを正しいものとしてマークしました。 – user1225282

関連する問題