supprimer plusieurs retours à la ligne - Perl - Programmation
Marsh Posté le 29-01-2017 à 10:49:43
C'est pas difficile, a vous de l’implémenter:
Vous créez une variable $a_ecrire
Vous lisez le fichier ligne a ligne
Pour chaque ligne lue (donc dans $_),
- si elle contient le pattern /.../ vous la concaténez a la ligne a_ecrire: $a_ecrire = $a_ecrire . $_ (avec peut être ajout d' un blanc $a_ecrire = $a_ecrire . " " . $_ a vous de voir)
- sinon
a- vous imprimez la ligne a écrire si elle n'est pas vide
b- vous resettez la ligne a ecrire avec la ligne courante $a_ecrire = $_
Et en sortie de la boucle de lecture, ne pas oublier d'imprimer la ligne a écrire restante.
Bref, on accumule les lignes lues, et on ne les envoie en sortie que chaque fois que la nouvelle ligne lue (pas encore accumulée) ne contient pas ...
A+,
Marsh Posté le 29-01-2017 à 13:31:40
j'ai essayé ce code mais il y a toujours des erreurs :
Code : |
je pense qu'il y a un pblme avec le regex
Marsh Posté le 29-01-2017 à 18:28:07
Clairement, puisque j'ai parlé de celle ci:
/\.\.\./
A+,
Marsh Posté le 29-01-2017 à 22:00:17
je veux concaténer
تَعَلَّم يا أَبا الجَحّافِ أَنِّي ... أَخٌ لك ما تَبَيَّنْتَ الطَّرِيقَا avec الأَوقُ: الجور، وأنشد afin d'avoir une seule ligne comme:
الأَوقُ: الجور، وأنشد تَعَلَّم يا أَبا الجَحّافِ أَنِّي ... أَخٌ لك ما تَبَيَّنْتَ الطَّرِيقَا وما لم تَغْشَ أَوْقاً إنَّ عَجْزاً ... برَأْيِ الْمَرْءِ أَن يَغْشَى الأْوُوقا
c-à-d à la fin tous les lignes de fichier sont sous la forme mot ou plus: mot ou plus
Marsh Posté le 31-01-2017 à 12:41:06
Ben quel est le critère clair permettant de savoir que la ligne qui vient d’être lue n'est pas a concaténer avec les pressentes?
Une fois le critère clairement défini, la regexp sera facile a écrire.
A+,
Marsh Posté le 31-01-2017 à 13:17:45
Comme le dit gilou, la première tâche avant de créer un regexp (et n'importe quel programme d'ailleurs) c'est de formaliser le besoin.
Du fait de la barrière de la langue, je suis incapable d'extraire le besoin de tes exemples.
Marsh Posté le 28-01-2017 à 21:15:09
Bonsoir à tous,
je veux fusionner des lignes d'un fichiers écrit sous cette forme:
الأَوْقُ: الثقل؛ يقال: ألقى عليَّ أَوْقَه. وتقول: أما والله لتجدنه عليك ذا أوق؛ قال:والجِنَّ أَمْسَى أَوقُهمْ مُجَمَّعَا
المأفول، من الرجال: الذي لا يجدونه على ما ظنوا به، في القتال وغيره
الأَوقُ: الجور، وأنشد
تَعَلَّم يا أَبا الجَحّافِ أَنِّي ... أَخٌ لك ما تَبَيَّنْتَ الطَّرِيقَا
وما لم تَغْشَ أَوْقاً إنَّ عَجْزاً ... برَأْيِ الْمَرْءِ أَن يَغْشَى الأْوُوقا
والآدم من الظباء: ذو الجُدَّتين السوداوين، ولونه إلى الحمرة
أَنْفُ كل شيءٍ: جانبه؛ تقول: ما أطعمتني إلا أنف الرّغَّيف: كسرة
رَعتْ بارِضَ البُهْمَى جَمِيماً وبُسْرةً ... وَصَمْعاءَ حتى آنَفَتْهَا نِصَالُهَا
والإِرَةُ: معتفرهم، وهو المُعْتَلَجُ والمُعْتَكَل؛ وقال حازم بن عتَّاب الفريريُّ
en fait je veux des lignes sous cette forme: (mot ou plusieurs mots): phrase
donc comme résultat:
الأَوْقُ: الثقل؛ يقال: ألقى عليَّ أَوْقَه. وتقول: أما والله لتجدنه عليك ذا أوق؛ قال:والجِنَّ أَمْسَى أَوقُهمْ مُجَمَّعَا
المأفول، من الرجال: الذي لا يجدونه على ما ظنوا به، في القتال وغيره
الأَوقُ: الجور، وأنشد تَعَلَّم يا أَبا الجَحّافِ أَنِّي ... أَخٌ لك ما تَبَيَّنْتَ الطَّرِيقَا وما لم تَغْشَ أَوْقاً إنَّ عَجْزاً ... برَأْيِ الْمَرْءِ أَن يَغْشَى الأْوُوقا
والآدم من الظباء: ذو الجُدَّتين السوداوين، ولونه إلى الحمرة
أَنْفُ كل شيءٍ: جانبه؛ تقول: ما أطعمتني إلا أنف الرّغَّيف: كسرة رَعتْ بارِضَ البُهْمَى جَمِيماً وبُسْرةً ... وَصَمْعاءَ حتى آنَفَتْهَا نِصَالُهَا
والإِرَةُ: معتفرهم، وهو المُعْتَلَجُ والمُعْتَكَل؛ وقال حازم بن عتَّاب الفريريُّ
j'ai essayéavec des regex mais je n'arrive pas à résoudre le pblme...
Message édité par mouda le 29-01-2017 à 10:34:00