Remplacer une partie de texte par une autre dans un fichier texte

Remplacer une partie de texte par une autre dans un fichier texte - Shell/Batch - Programmation

Marsh Posté le 13-11-2012 à 16:52:15    

Bonjour,
Voilà mon problème : J'utilise souvent des liens d'images à placer dans des messages de forum.
J'uploade mes images et j'obtiens ca
 

Code :
  1. http://img705.imageshack.us/img705 [...] ustv23.jpg
  2. http://img22.imageshack.us/img22/2104/imagecustv21.jpg
  3. http://img33.imageshack.us/img33/8714/imagecustv22.jpg
  4. http://img528.imageshack.us/img528 [...] ustv25.jpg
  5. http://img839.imageshack.us/img839 [...] ustv24.jpg


 
je colle donc à chaque fois les balises pour les images mais c'est vite ch*** lol
je pensais donc créer un fichier BAT (pour sa simpicité d'utilisation) qui changer mon texte dans un fichier appelé 1.txt par exemple et qui me donnerai
 

Code :
  1. |img]http://img705.imageshack.us/img705/5686/imagecustv23.jpg|/img]
  2. |img]http://img22.imageshack.us/img22/2104/imagecustv21.jpg|/img]
  3. |img]http://img33.imageshack.us/img33/8714/imagecustv22.jpg|/img]
  4. |img]http://img528.imageshack.us/img528/2645/imagecustv25.jpg|/img]
  5. |img]http://img839.imageshack.us/img839/1748/imagecustv24.jpg|/img]


 
j'ai bien essayé ca :
 

Code :
  1. set fichier=1.txt
  2. @for /f %%s in (%1) do call :Remove "%%s" %2
  3. @goto :end
  4. :Remove
  5. set s=%1
  6. set s=%s:~1,-1%
  7. set f=%2
  8. set s=%s:http://=[img]http://%
  9. echo %s% >>%f%
  10. :goto :eof
  11. :end


 
mais ca donne rien :(((
 
une idée ?
 
merci


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 13-11-2012 à 16:52:15   

Reply

Marsh Posté le 17-11-2012 à 10:23:53    

Hello,
 
Qque chose dans le genre :
 

Code :
  1. FOR /F "TOKENS=*" %%A IN (1.txt) DO ECHO ^|img^]%%A^|^/img^]


 
?

Reply

Marsh Posté le 17-11-2012 à 13:25:58    

Seulement cette ligne ?  

Reply

Marsh Posté le 17-11-2012 à 14:24:16    

Avec une redirection dans un fichier final 2.txt le cas échéant
 

Code :
  1. FOR /F "TOKENS=*" %%A IN (1.txt) DO ECHO ^[img^]%%A^[^/img^]>>2.txt


 
Si cela correspond bien à ce que tu demandes?

Reply

Marsh Posté le 17-11-2012 à 14:29:58    

Ça m'a l'air bien, je teste ça ce soir. Merci pour ton coup de main !


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 19-11-2012 à 09:33:04    

t'es trop fort, ca fonctionne super bien !!
pour comprendre le truc c'est un ajout à chaque début et fin de ligne ?


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 19-11-2012 à 11:03:17    

Oui, la valeur lue sur chaque ligne de ton fichier 1.txt est encadrée à gauche et à droite par tes balises dans le fichier 2.txt
 
PS : Il est peut être possible d'automatiser une partie ou la totalité du processus (upload, récup des liens, et post sur le forum)

Reply

Marsh Posté le 19-11-2012 à 11:13:46    

Tu m'intéresses ! Dis moi en plus stp


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 19-11-2012 à 11:27:00    

L'utilitaire cURL permet de récupérer des pages ou éléments de page web et également de remplir des formulaires, par exemple poster un message sur un forum, etc. On peut l'utiliser en ligne de commande, donc associé avec un batch dans ce cas de figure.
 
On pourrait imaginer que tu mettes tes images dans un dossier "Upload", avec à côté un fichier texte dans lequel tu indiquerais l'url destinataire (soit le lien d'un sujet déjà existant sur ton forum, soit le sous-forum dans lequel tu veux poster ton nouveau sujet), avec un batch qui mettrait en forme tes liens et récupèrerait l'url du forum, et cURL qui ferait l'upload, la récup, et le post
 
A voir peut être

Reply

Marsh Posté le 19-11-2012 à 14:33:37    

waou c'est géant ca !!


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 19-11-2012 à 14:33:37   

Reply

Marsh Posté le 29-11-2012 à 20:38:09    

est ce que avec Curl tu pourrais par exemple extraire la date de naissance sur cette fiche ? http://www.vectra-c-gts.com/u14


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 29-11-2012 à 21:24:17    

pour récupérer la page dans un fichier DN.html :
 

Code :
  1. curl -o DN.html "http://www.vectra-c-gts.com/u14"


 
en regardant le contenu la date de naissance est encadrée en particulier dans ce bloc :
 

Code :
  1. Date de naissance</span>: </dt><dd><div class="field_uneditable">01/04/1978</div>


 
reste à l'extraire, par exemple avec FOR, FINDSTR, GREP ou autre

Reply

Marsh Posté le 30-11-2012 à 08:19:34    

alors je colle ce premier code dans un fichier texte que j'execute en renommant son extension en bat mais ca me met les infos dans un fichier ?
 
pour le moment je copie-colle chacune de ces infos soit prés de 5x des copié-collé par membre on multiplie par plus de 500 j'ai le doigt qui a fumé lol
non sans blague si je/tu trouves un moyen d'autoimatiser ca, ce serait TOP !


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 30-11-2012 à 09:11:34    

Citation :

alors je colle ce premier code dans un fichier texte que j'execute en renommant son extension en bat mais ca me met les infos dans un fichier ?


Oui, la page http://www.vectra-c-gts.com/u14 est récupérée par cURL sur ton ordi dans le fichier DN.html (tu peux l'appeler comme tu veux d'ailleurs). Après il suffit d'extraire les chaînes de ton choix, comme la date d'anniversaire, à la suite de ton batch
 
 par contre il faut que tu télécharges cURL http://curl.haxx.se/gknw.net/7.28. [...] in-w32.zip qui n'est pas natif dans windows, ainsi que probablement quelques dépendances
 
Pour automatiser le processus, càd généraliser cette extraction sur plusieurs utilisateurs, il faudrait connaître le pas-à-pas, formaliser chacune des étapes.

Reply

Marsh Posté le 01-12-2012 à 18:27:17    

en utilisant [001-100] je peux déjà le faire sur toutes ses informations, c'est énorme !!
aprés un petit coup de macro Excel et fini !!
a moins que je puisse "filtre" dés la copie... à voir  
 
merci !


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 01-12-2012 à 21:01:40    

Code :
  1. a moins que je puisse "filtre" dés la copie


 
oui surement possible d'extraire la date de naissance pour chaque utilisateur, si c'est ce à quoi tu fais référence
Les données finissent dans un tableau excel par la suite ?

Reply

Marsh Posté le 01-12-2012 à 22:23:17    

oui pour extraire des stats (pyramide d'age, sexe etc etc) mais ca prend on compte d'autres infos que l'age.
en tout cas c'est magique cette fonction curl, je récupére les infos sur 100 utilisateurs en 10 secondes avant il me fallait tout copier coller !


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 02-12-2012 à 11:15:02    

Cela me fait penser à un batch que j'utilisais, en fait il s'agissait d'une enquête en ligne (limesurvey) : un batch récupérait les résultats du jour (via cURL) et les exportait au format xls, et pour la mise en forme, en tout cas sous oOo à l'époque, il était possible d'appeler une macro en ligne de commande :
 

Citation :

"%ProgramFiles%\OpenOffice.org 3\program\soffice.exe" Statistiques_%JourLancement%-%MoisLancement%-%AnneeLancement%.xls "macro:///Standard.Module1.StatLime"


 
ainsi la quasi totalité du processus était automatisé, restait juste à mettre en forme les statistiques (graphiques), ce qui est surement aussi faisable avec une autre macro

Reply

Marsh Posté le 02-12-2012 à 13:50:53    

y'a bon!! encore un bon tuayu !! merci


---------------
http://www.vectra-c-gts.com/
Reply

Marsh Posté le 25-01-2013 à 10:09:45    

eZula, je peux abuser ?
j'ai un problème, ca ne me copie pas tout car il faut se connecter avec ses identifiants pour avoir accés.
saurais tu comment ajouter cette ligne pour me loger ?

Reply

Marsh Posté le 25-01-2013 à 19:45:55    

Il faut analyser le post quand tu te logues sur ton forum, tu peux par exemple t'aider de ce module si tu es sous firefox https://addons.mozilla.org/fr/firef [...] p-headers/ mais il existe sans doute un tas d'autres solutions.
Les données qui peuvent être demandées sont l'user agent, le referer, bien sur l'url du forum, l'identifiant et le mdp, etc, et les différents boutons à valider (comme si tu cliquais sur "se connecter", ou "envoyer le message" )
Il est généralement nécessaire de récupérer le cookie qui te permettra de rester identifié
 
Un très bon manuel ici http://curl.haxx.se/docs/httpscripting.html

Reply

Marsh Posté le 27-01-2013 à 19:23:08    

ceci pourrait jouer ?
 
curl http://www.vectra-c-gts.com/u[6-6]?username=yoyov**&password=*******&login=OK > yo-DN.txt
 
je dois faire une erreur quelque part car le fichier txt est vide

Reply

Marsh Posté le 28-01-2013 à 10:47:43    

Utilise les données que te fournit livehttpheaders
 
exemple pour la connexion sur un forum quelconque :
 

Code :
  1. curl -A "Mozilla/5.0 (X11; U; Linux i686; fr; rv:1.9.0.1) Gecko/2008070400 SUSE/3.0.1-7.1 Firefox/3.0.1" -d "Identification=Identifiant&login=yoyovento&pass=XXX&Identification=Connexion" -c "CookieFORUM.txt" "URL_DU_FORUM" >> connexion.html


 
A : user-agent
d : champs
c: cookie
 
le cas échéant le referer, le site d'où tu viens (ajouter après l'user agent "-e "URL_DU_SITE" )
 
Vois déjà si tu parviens à te connecter en ouvrant le fichier connexion.html

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed