2011-09-30 2 views
0

Je dois savoir comment lire les données d'un fichier texte délimité par des tabulations afin d'exporter les documents fusionnés vers l'emplacement correct.onglets de comptage rassembler des données à partir d'un texte délimité par des tabulations .JSX Adobe InDesign

- sera toujours 4ème onglet 2ème répertoire ligne (numéro de groupe) sera nommé par le numéro de groupe

- avoir des répertoires déjà créés par le script privious .vbs

données devront être placés:

app.open(File(dirPath + "Card~" + (group number) + ".indd")); 

et aussi:

fileName = (group number) + " " + myPageName + " " + date + ".pdf";   
     myFilePath = dirPath + docType + "/" + fileName; 
     myFile = new File(myFilePath); 
     myDocument.exportFile(ExportFormat.pdfType, myFile, false); 

au sein .V précédent scénario bs de travailler avec ce fichier de données a été écrit comme ceci:

    Call TwoDimensionArrayTest 
Sub TwoDimensionArrayTest 

Dim fso 
    Dim oFile 
    Dim arrline 
    Dim arrItem 
    Dim i 
    Dim arrMain() 
    Dim sFileLocation, strResults 
    Dim filesys, folder, path  

    Const forReading = 1 
     
strFolder = "P:\RxCut\In Design Implementation\build\Co-Brand\" 
mkdir = "P:\RxCut\In Design Implementation\" 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
For Each objFile In objFSO.GetFolder(strFolder).Files 
    If Right(LCase(objFile.Name), 4) = LCase(".txt") Then 
     
        ' The file contains on each line: 
    ' Text1 (tab) Text2 (tab) Text3 (tab) Text4 
    ' Text5 (tab) Text6 (tab) Text7 (tab) Text8 
'etc etc 

Set fso = CreateObject("Scripting.FileSystemObject") 
        sFileLocation = objFile.Name 
         
        Set oFile = fso.OpenTextFile(objFile.Name, forReading, False) 
         
    Do While oFile.AtEndOfStream <> True 
        strResults = oFile.ReadAll 
    Loop 
     
    ' Close the file 
    oFile.Close 
     
' Release the object from memory 
    Set oFile = Nothing 
     
' Return the contents of the file if not Empty 
    If Trim(strResults) <> "" Then 
         
        ' Create an Array of the Text File 
        arrline = Split(strResults, vbNewLine) 
    End If 
  
    For i = 0 To UBound(arrline) 
        If arrline(i) = "" Then 
            ' checks for a blank line at the end of stream 
            Exit For 
        End If  
         
        ReDim Preserve arrMain(i) 
         
            arrMain(i) = Split(arrline(i), vbTab) 

    Next 
     
    path = arrMain(1)(3) 
    dir = mkdir & path 
    set filesys=CreateObject("Scripting.FileSystemObject")  
If Not filesys.FolderExists(dir) Then  
Set folder = filesys.CreateFolder(dir)  
End If 
     
   dir = mkdir & path 
   Set folder = filesys.CreateFolder(dir & "\Web") 
   Set folder = filesys.CreateFolder(dir & "\Web\Web Cards") 
   Set folder = filesys.CreateFolder(dir & "\Web\Web Headers") 
    
       fso.MoveFile sFileLocation, arrMain(1)(3) & ".txt" 
        
 End If  
 Next 
End Sub ' TwoDimensionArrayTest 

Comment puis-je obtenir quelque chose simular dans .jsx? Merci à l'avance, Joe

Répondre

0

figured it out ce lira 1,3 et créer une variable pour le numéro de groupe 1,3

var aFile = File("P:/RxCut/In Design Implementation/build/automate/automate.txt"); 
    var fileData = readTabDelimitedFile (aFile) ; 
    //$.writeln(fileData[1][3]); //should contain first tab on second line 
    tstdata = fileData[1][3]; 
    var group = tsdata 
    function readTabDelimitedFile (fPath) { 

    var returnArray = new Array () ; 

    //-- Verify that the file exists 
    var fileObject = File (fPath) ; 
    if (! fileObject.exists) { 
    return returnArray ; // an empty array because the file doesn't exist. 
    } 
    //-- Create a regular expression for a tab. 
    var tabExpression = new RegExp ('\\t') ; 

    //-- Read the file. 
    try { 
    //-- The file has to be open. 
    fileObject.open ('r') ; //-- Open for reading. 

    while (! fileObject.eof) { 
    var currentLine = fileObject.readln() ; 

    if (tabExpression.test(currentLine)) { 

    returnArray.push(currentLine.split ('\t')) ; 
    } 
    } 
    fileObject.close() ; 
    } 

    catch (errMain) { 
    try { 

    fileObject.close() ; 
    } 
    //-- if the close generates an error skip it. 
    catch (errInner) { /* nothing here */ } 
    } 

    return returnArray ; 

    var group = returnArray 
    } 
Questions connexes