superbosu Posted January 15, 2013 Posted January 15, 2013 (edited) Hi all, I'm new with autoit and I trying to do a script that read from 3 txt files and put all rows in a html file as a table for example: file1.txt have this data row 1 row 2 row 3 row 4 ... row n file2.txt have this data: row 1b row 2b row 3b row 4b .... row nb file3.txt have this data: row 1c row 2c row 3c row 4c .... row nc my question is if is possible in autoit to put this 3 files in a final.html file in a table like this: row 1 row 1b row 1c row 2 row 2b row 2c row 3 row 3b row 3c row 4 row 4b row 4c ... ..... ....... row n row nb row nc Can somebody help with this script? I'know how to read the files but I don't know how to join all together in a table Tnx for your precious help and sorry for my bad english. Edited January 15, 2013 by superbosu
jdelaney Posted January 15, 2013 Posted January 15, 2013 (edited) FileRead to read in the data from the 3 files, to their own stringsStringSplit to split by @crlf to their own arraysI'd use XML doms to build the html table.You will need to make lots of nodes (starting at the <table>, then make the 3 <tr>s, then loop through the above arrays, and add <td>shttp://www.w3schools.com/dom/dom_nodes_create.aspedit: xml dom would probably be overkill, just concat strings with the proper html tag surrounding it. Edited January 15, 2013 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
GMK Posted January 15, 2013 Posted January 15, 2013 _FileReadToArray might be simpler than FileRead and StringSplit (although that's what the UDF does).
guinness Posted January 15, 2013 Posted January 15, 2013 Or StringRegExp? There are many ways to do this, just use the help file to find out how to use the functions presented to you in this thread. UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018
superbosu Posted January 15, 2013 Author Posted January 15, 2013 tnx for the quick reply all! I tring to read the 3 files with the array function and i created 3 arrays _FileReadToArray("D:\file1.txt", $Array1) _FileReadToArray("D:\file2.txt", $Array2) _FileReadToArray("D:\file3.txt", $Array3) but I don't know how to use the loop of these 3 arrays to write in the new file concatenated rows like these: $file = FileOpen("D:\final.txt", 1) FileWriteLine($file,'<tr>') FileWriteLine($file,'<td>'& row 1 &'</td>') ; how to put there the first value of the array1 ? FileWriteLine($file,'<td>'& row 1b &'</td>') ; how to put there the first value of the array2 ? FileWriteLine($file,'<td>'& row 1c &'</td>') ; how to put there the first value of the array3 ? FileWriteLine($file,'</tr>') I have to use 3 arrays?
jdelaney Posted January 15, 2013 Posted January 15, 2013 (edited) Use a For loop: For $i = 1 To UBound ($Array1) - 1 FileWriteLine($file,'<td>' & $Array1[$i] & '</td>') Next Make sure to wrap the for loop with your <TR> input edit: wait a sec, you want the row to be a combo the nTH data point from each file? That's a little different Edited January 15, 2013 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
jdelaney Posted January 15, 2013 Posted January 15, 2013 (edited) You can do something like this Edit: I made it dynamic to pick up any number of files...just update the $sFolder to your directory that holds all the files expandcollapse popup#include <array.au3> #include <File.au3> $sFolder = @DesktopDir & "\DataFiles\" ; Where above dir includes any number of files...example: ; $sFile1 = 'test1a' & @LF & 'test1b' & @LF & 'test1c' ... to however many ; $sFile2 = 'test2a' & @LF & 'test2b' & @LF & 'test2c' ... to however many ; $sFile3 = 'test3a' & @LF & 'test3b' & @LF & 'test3c' ... to however many ; $sFile4 = 'test4a' & @LF & 'test4b' & @LF & 'test4c' ... to however many $aFiles = _FileListToArray($sFolder, "*", 1) If $aFiles[0] > 0 Then Dim $aFileData[$aFiles[0]] Else MsgBox(1,1,"No files and/or dir=[" & $sFolder & "]") Exit EndIf ; Read in all the file's data For $i = 1 To UBound ($aFiles) - 1 Dim $aTemp[1] _FileReadToArray($sFolder & $aFiles[$i],$aTemp) $aFileData[$i-1] = $aTemp Next $iUbound1D = 0 ; Get the second dimention needs For $i = 0 To UBound ($aFileData) - 1 $aTemp = $aFileData[$i] If UBound ($aTemp)-1 > $iUbound1D Then $iUbound1D = UBound ($aTemp)-1 Next ; create an array with proper bounds to house all data Dim $aAllData[$iUbound1D][$aFiles[0]] ; Transpose the data of the files For $i = 0 To UBound ($aAllData,2) - 1 $aTemp = $aFileData[$i] For $j = 1 To UBound ($aTemp) - 1 $aAllData[$j-1][$i] = $aTemp[$j] Next Next ; Just a display of the array _ArrayDisplay($aAllData) ConsoleWrite("<HTML>" & @CRLF) ConsoleWrite("<Table>" & @CRLF) For $i = 0 To UBound ($aAllData) - 1 ConsoleWrite("<tr>" & @CRLF) For $j = 0 To UBound ($aAllData, 2) - 1 ConsoleWrite("<td>" & $aAllData[$i][$j] & "</td>" & @CRLF) Next ConsoleWrite("</tr>" & @CRLF) Next ConsoleWrite("</Table>" & @CRLF) ConsoleWrite("</HTML>" & @CRLF) output would be: <HTML> <Table> <tr> <td>test1a</td> <td>test2a</td> <td>test3a</td> <td>test4a</td> </tr> <tr> <td>test1b</td> <td>test2b</td> <td>test3b</td> <td>test4b</td> </tr> <tr> <td>test1c</td> <td>test2c</td> <td>test3c</td> <td>test4c</td> </tr> <tr> <td>test1d</td> <td>test2d</td> <td>test3d</td> <td>test4d</td> </tr> <tr> <td>test1e</td> <td>test2e</td> <td>test3e</td> <td>test4e</td> </tr> </Table> </HTML> Edited January 15, 2013 by jdelaney IEbyXPATH-Grab IE DOM objects by XPATH IEscriptRecord-Makings of an IE script recorder ExcelFromXML-Create Excel docs without excel installed GetAllWindowControls-Output all control data on a given window.
guinness Posted January 15, 2013 Posted January 15, 2013 (edited) superbosu, If you don't understand the basics of Arrays, then I suggest reading http://www.autoitscript.com/wiki/Arrays as this is a good start to understanding the basics. Edited January 15, 2013 by guinness UDF List: _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018
superbosu Posted January 16, 2013 Author Posted January 16, 2013 WOOOOW jdelaney it works!! TNX a lot for helping me with this script. It does exactly what I needed. :thumbsup:
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now