johnmcloud Posted October 24, 2012 Posted October 24, 2012 Hi guys, I have 2 question First: I have 2 array with _StringBetween $aArrayTask = _StringBetween($result, 'align=left>', ' </td>') $aArrayName = _StringBetween($result, '<td width=62% align=left>', '<td width=30% align=left>') I write it on separate file using _FileWriteFromArray. But if want to write on the same txt like: $aArrayName & " " & $aArrayTask How to do that? Second One of the array have a little problem: blaba babadsda sadasddsa <font color=#0066FF>dsasdadsa <font color=#0088FF>dsasadsd reerre rrtrtrt I can remove the <font color=#0066FF> before i write on the file? Or i need to remove after? The font color name change everytime. Thanks for support
water Posted October 24, 2012 Posted October 24, 2012 Use function _ArrayConcatenate to concatenate the arrays. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
johnmcloud Posted October 24, 2012 Author Posted October 24, 2012 (edited) Hi water, i don't want to concatenate like this: 1 2 3 A B C But like this: 1 A 2 B 3 C Thanks EDIT: About String replace, i have a problem: With this work: $read = "<font color=#66FFFF>Work with me" $after = StringRegExpReplace($read, "([<])(.*)([>])", "") ConsoleWrite($after) But not with this: $read = "<font color=#66FFFF> NOT Work with me <font color>" $after = StringRegExpReplace($read, "([<])(.*)([>])", "") ConsoleWrite($after) I'm not an StringRegExpReplace expert, so what is the problem? Edited October 24, 2012 by johnmcloud
water Posted October 24, 2012 Posted October 24, 2012 In this case you have to loop through the arrays and create an output array yourself. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
water Posted October 24, 2012 Posted October 24, 2012 In pseudo code: determine the dimension of both arrays Make sure both arrays have the same number of rows (or you have to check in the loop) Define a 2D array with this number of rows and 2 columns loop for the number of entries in the input array write entry of array 1 to cell 0 of the output array write entry of array 2 to cell 1 of the output array endloop Good luck! My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
johnmcloud Posted October 24, 2012 Author Posted October 24, 2012 I'll check it out later. An easy task, what is wrong? Global $ini = @WorkingDir & "test.txt" $read = _INetGetSource([url="http://www.babbaab.com"]www.babbaab.com[/url]) FileOpen($ini, 1) $aArrayFinal = _StringBetween($read, '<td width=62% align=left>', ' </td>') $after = StringRegExpReplace($aArrayFinal, "([<])(.*)([>])", "") _FileWriteFromArray($ini, $after) FileClose($ini) I see a blank file. But in this way work: Global $ini = @WorkingDir & "test.txt" $read = _INetGetSource([url="http://www.babbaab.com"]www.babbaab.com[/url]) FileOpen($ini, 1) $aArrayFinal = _StringBetween($read, '<td width=62% align=left>', ' </td>') $after = StringRegExpReplace($aArrayFinal, "([<])(.*)([>])", "") _FileWriteFromArray($ini, $aArrayFinal) FileClose($ini) I'd like to avoid to do the StringRegExpReplace after i have make the file. How to do? Thanks
water Posted October 24, 2012 Posted October 24, 2012 Does the StringRegExpReplace work for you? If yes, why replace with something else? My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
johnmcloud Posted October 24, 2012 Author Posted October 24, 2012 Maybe i wasn't clear. That's what i do now 1- Make array 2- Write array on file 3-StringRegExReplace on the file 4-Save the file, again. But i'd like to remove the second point, so: 1- Make array 2- StringRegExReplace directly on the array 3- Save the result on the file
water Posted October 24, 2012 Posted October 24, 2012 You can't pass an array to StringRegExpReplace. Use _ArrayToString and @CRLF as a separator before using StringRegExpReplace. Then you can write the whole string to a file using FileWrite. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki
Robjong Posted October 24, 2012 Posted October 24, 2012 Maybe I have not got this right but this might work... ; ... do the InetGet and StringBetween stuff ... ; example arrays, names and tasks Global $aNames[5] = [4, 'A', 'B', 'C', '<font color=#0066FF>D'] Global $aTasks[4] = [3, '<font color=#0088FF>dsasadsd', 'reerre', 'rrtrtrt'] $sData = _KeyValueArraysToString($aNames, $aTasks) ; ... $sData is the list as string, you can write it to a file now ... ConsoleWrite($sData) Func _KeyValueArraysToString($aKeys, $aValues) Local $iKeys = UBound($aKeys), $iValues = UBound($aValues), $iUB = $iKeys If $iKeys < $iValues Then $iUB = $iValues EndIf Local $sString = '', $sKey, $sValue For $i = 1 To $iUB - 1 Step 1 ; loop through the array ; reset vars $sKey = '' $sValue = '' ; get key and value from arrays, make sure the index is not out of bounds If $i < $iKeys Then $sKey = $aKeys[$i] If $i < $iValues Then $sValue = $aValues[$i] ; add data to string $sString &= $sKey & ' ' & $sValue & @LF Next Return SetError(0, $i, StringRegExpReplace($sString, '<[^>]+>', '')) ; return string with tags removed EndFunc ;==>_KeyValueArraysToString
johnmcloud Posted October 24, 2012 Author Posted October 24, 2012 (edited) StringRegExpReplace($aArrayToString, '<[^>]+>', '') Thanks this is what i need for now I'll check it out all the rest of the array stuff Edited October 24, 2012 by johnmcloud
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