Bonjour,

Je dois faire la migration d'un script vba en shell unix.

L'objectif est de construire un fichier csv à partir de données brutes.
Dans ce fichier je dois remplir un champs (nombre de mouvements) en fonction du champ contrat.

En gros le champ Nombre de mouvement est égal à 0 sauf s'il ya doublons de contrat ID et dans ce cas le dernier doublons prend la valeur 1 et les champs précèdents ont la valeur 0

Exemple:
Contrat;Nombre de mouvements
12;1
45;0
45;1
78;0
78;0
78;1
52;1
47;0
47;1
J'ai essayé de faire ça en shell avec un tableau mais j'ai des problèmes sur la limite du tableau 1024 alors que j'ai plus de 8000 lignes.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
tab: subscript out of range
Quelqu'un aurait il une idée sur comment je pourrai faire ca sans passer par les tableaux. Merci de votre aide

Voici l'équivalence en vba


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
 'Nombre de mouvements
    Nb_Colonnes = Nb_Colonnes + 1
    If (Donnees(Nb_Lignes, 2) = Donnees(Nb_Lignes - 1, 2) And Nb_Lignes > 2) Then
        Donnees(Nb_Lignes - 1, Nb_Colonnes) = 0
    ElseIf (Nb_Lignes > 2) Then
        Donnees(Nb_Lignes - 1, Nb_Colonnes) = 1