laurimi2 Posted November 17, 2012 Share Posted November 17, 2012 Bonjour Je souhaiterais, par rapport a un fichier paramètre txt (comportant des numéros de facture) retrouver dans le fichier détail des factures ces numéros de facture et recopier dans un autre fichier txt toutes les lignes détails de ces numéros de facture. Sachant que dans le détail des factures les lignes commencent par ENT et finissent pour une facture par PIE Fichier paramètre : 12062917 12062923 Les lignes à prendre en compte débutent par ENT et finissent par PIE Fichier détail des factures ENT38012062917 4320121009201210080400028 20121008 LIN00013239914105335EN04105335 XXXX 000000300PCE00001105000001105000000331501960000006500S LIN00023239914103829EN04103829 VVVVVVVV 000000600PCE00001020000001020000000612001960000012000S PIE0000002912300000034831000000057080000003483119600000002912300000005708 ENT38012062928 4320121009201210080400215 20121008 LIN00013239915105334EN05105334 ZZZZZZ 000000400PCE00004353000004353000001741201960000034130S LIN00043239914113514EN04113514 YYYYYYY 000000300PCE00001264000001264000000379201960000007430S PIE0000002956800000035363000000057950000003536319600000002956800000005795ENT38012062923 432012100920121008RRRR 20121005 LIN00013239910251463EN00251463 ZZZZZZZZZZZ 000000200PCE00000000000000000000000000001960000000000S LIN00023239910251470EN00251470 YYYYYYYYY 000000200PCE00000000000000000000000000001960000000000S PIE0000000000000000000000000000000000000000000000000000000000000000000000 En finalité, j’aurais un fichier txt : ENT38012062917 4320121009201210080400028 20121008 LIN00013239914105335EN04105335 XXXX 000000300PCE00001105000001105000000331501960000006500S LIN00023239914103829EN04103829 VVVVVVVV 000000600PCE00001020000001020000000612001960000012000S PIE0000002912300000034831000000057080000003483119600000002912300000005708ENT38012062923 432012100920121008RRRR 20121005 LIN00013239910251463EN00251463 ZZZZZZZZZZZ 000000200PCE00000000000000000000000000001960000000000S LIN00023239910251470EN00251470 YYYYYYYYY 000000200PCE00000000000000000000000000001960000000000S PIE0000000000000000000000000000000000000000000000000000000000000000000000 Mais pas la facture : 12062928 (ENT38012062928) Merci d’avance pour votre aide Link to comment Share on other sites More sharing options...
PhoenixXL Posted November 17, 2012 Share Posted November 17, 2012 (edited) Please dont create two topics is a Copy of the TOPICInstead ask a Moderator to move the Topic to the right FORUM Edited November 17, 2012 by PhoenixXL My code: PredictText: Predict Text of an Edit Control Like Scite. Remote Gmail: Execute your Scripts through Gmail. StringRegExp:Share and learn RegExp.Run As System: A command line wrapper around PSEXEC.exe to execute your apps scripts as System (LSA). Database: An easier approach for _SQ_LITE beginners. MathsEx: A UDF for Fractions and LCM, GCF/HCF. FloatingText: An UDF for make your text floating. Clipboard Extendor: A clipboard monitoring tool. Custom ScrollBar: Scroll Bar made with GDI+, user can use bitmaps instead. RestrictEdit_SRE: Restrict text in an Edit Control through a Regular Expression. Link to comment Share on other sites More sharing options...
stormbreaker Posted November 17, 2012 Share Posted November 17, 2012 (edited) Perhaps, StringRegExp() is what you need.FRENCH (Google Translation): Peut-être, StringRegExp() est ce qu'il vous faut.Edit: PhoenixXL, you were just seconds before me. Edited November 17, 2012 by MKISH ---------------------------------------- :bye: Hey there, was I helpful? ---------------------------------------- My Current OS: Win8 PRO (64-bit); Current AutoIt Version: v3.3.8.1 Link to comment Share on other sites More sharing options...
water Posted November 17, 2012 Share Posted November 17, 2012 (edited) Instead ask a Moderator to move the Topic to the right FORUMI've already reported the thread to be moved. Unfortunately the OP was faster in creating a second thread.People should read the forum rules before they start to post! Edited November 17, 2012 by water My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 17, 2012 Moderators Share Posted November 17, 2012 laurimi2,Welcome to the AutoIt forum. As has been mentioned, please do not double post. And the normal forum language is English - although we have speakers of many other tongues here, we ask that you post in English. Google Translate will help if you need. And this is how you might do what you want:; Simulate gettign the parameters into an array with FileWriteToArray Global $aParams[2] = [12062917, 12062923] $sText = "ENT38012062917 4320121009201210080400028 20121008 LIN00013239914105335EN04105335 XXXX 000000300PCE00001105000001105000000331501960000006500S LIN00023239914103829EN04103829 VVVVVVVV 000000600PCE00001020000001020000000612001960000012000S PIE0000002912300000034831000000057080000003483119600000002912300000005708" & _ "ENT38012062928 4320121009201210080400215 20121008 LIN00013239915105334EN05105334 ZZZZZZ 000000400PCE00004353000004353000001741201960000034130S LIN00043239914113514EN04113514 YYYYYYY 000000300PCE00001264000001264000000379201960000007430S PIE0000002956800000035363000000057950000003536319600000002956800000005795" & _ "ENT38012062923 432012100920121008RRRR 20121005 LIN00013239910251463EN00251463 ZZZZZZZZZZZ 000000200PCE00000000000000000000000000001960000000000S LIN00023239910251470EN00251470 YYYYYYYYY 000000200PCE00000000000000000000000000001960000000000S PIE0000000000000000000000000000000000000000000000000000000000000000000000" ; Split the text into the separate elements $aSplit = StringSplit($sText, "ENT", 1) ; This is what we write to the file $sData = "" ; Now loop through the elements For $i = 1 To $aSplit[0] $sEntry = $aSplit[$i] ; And check it against each of the parameters For $j = 0 To UBound($aParams) - 1 ; Which parameter and how long is it $sParam = $aParams[$j] $iLen = StringLen($sParam) ; Compare to the entry If StringMid($sEntry, 4, $iLen) = $sParam Then ; And add the data to the file if it matches $sData &= "ENT" & $sEntry & @CRLF EndIf Next Next ; Check the data - you can use FileWrite here ConsoleWrite($sData & @CRLF)M23Bienvenu au forum AutoIt.Comme deja dit, tu es prié de ne pas doubler les questions. Et ici on parle en Anglais de preference - il y a pas mal d'autre langues comprises, mais nous demandons qu'on utilise Anglais quand on poste. Google Translate est ton ami en cas de besoin.Et je t'ai donné un solution. Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
water Posted November 17, 2012 Share Posted November 17, 2012 Wow, multilingual help My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
laurimi2 Posted November 18, 2012 Author Share Posted November 18, 2012 Hello, Sorry for the french post...Thank you in advance for delete the double post. I'm very happy to have a response from my post. Thanks a lot to Melba23. I have try to translate my post. I have 1 file ( parameters.txt) with some invoices number I have another files (invoices.txt) with a lot of lignes. I'd like to create a new file.txt with all lignes in invoices.txt = Number invoice in parametres.txt The line in invoices.txt start with ENTxxxxxxxx end finish with PIE. Sorry for my english Best regards Michel Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted November 18, 2012 Moderators Share Posted November 18, 2012 laurimi2m I gave you a solution above. Does it not work for you: M23 Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
laurimi2 Posted November 19, 2012 Author Share Posted November 19, 2012 Hi, I don't know how take information from parameters.txt file and from invoces.txt. For exemple open file parameters.txt and read information and open invoices.txt and if the number of invoices parameters.txt = invoices.txt number etc... Thank you in advance Michel Link to comment Share on other sites More sharing options...
FireFox Posted November 19, 2012 Share Posted November 19, 2012 Hi/Salut, Here you go : #include <File.au3> #include <Array.au3> Global $aParametres, $aFactures, $iParamIndex, $sFacturesFinales = "" _FileReadToArray("parametres.txt", $aParametres) ;on lit le fichier parametres.txt et on met chaque ligne dans un tableau _FileReadToArray("factures.txt", $aFactures) ;même chose For $iFact = 1 To $aFactures[0] ;on navigue dans le tableau des factures ;ici on cherche dans le tableau factures pour trouver le paramètre, on prend la facture jusqu'au caractère TAB, puis on saute le "ENT380" d'une longeur de 6. $iParamIndex = _ArraySearch($aParametres, StringTrimLeft(StringLeft($aFactures[$iFact], StringInStr($aFactures[$iFact], @TAB)-1), 6), 1) If $iParamIndex <> -1 Then $sFacturesFinales &= $aFactures[$iFact] & @CrLf EndIf Next ConsoleWrite($sFacturesFinales & @CrLf) ;ou: FileWrite("facturesfinales.txt", $sFacturesFinales) Br/Cordialement, FireFox. Link to comment Share on other sites More sharing options...
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