Jump to content

Creation programme


laurimi2
 Share

Recommended Posts

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

Please dont create two topics

is a Copy of the TOPIC

Instead ask a Moderator to move the Topic to the right FORUM

Edited 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

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 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

Instead ask a Moderator to move the Topic to the right FORUM

I'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 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 - 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 (NEW 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

 

Link to comment
Share on other sites

  • Moderators

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)

M23

Bienvenu 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. ;)

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

Wow, multilingual help :thumbsup:

My UDFs and Tutorials:

Spoiler

UDFs:
Active Directory (NEW 2022-02-19 - Version 1.6.1.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 (NEW 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

 

Link to comment
Share on other sites

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

  • Moderators

laurimi2m

I gave you a solution above. Does it not work for you: :huh:

M23

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.png 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- A highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

 

Link to comment
Share on other sites

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

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...