Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1331 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

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

n°2163797
yoyovento
passion ≠ raisons
Posté le 13-11-2012 à 16:52:15  profilanswer
 

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/
mood
Publicité
Posté le 13-11-2012 à 16:52:15  profilanswer
 

n°2164389
eZula
Posté le 17-11-2012 à 10:23:53  profilanswer
 

Hello,
 
Qque chose dans le genre :
 

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


 
?

n°2164410
yoyovento
passion ≠ raisons
Posté le 17-11-2012 à 13:25:58  profilanswer
 

Seulement cette ligne ?  

n°2164414
eZula
Posté le 17-11-2012 à 14:24:16  profilanswer
 

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?

n°2164416
yoyovento
passion ≠ raisons
Posté le 17-11-2012 à 14:29:58  profilanswer
 

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


---------------
http://www.vectra-c-gts.com/
n°2164567
yoyovento
passion ≠ raisons
Posté le 19-11-2012 à 09:33:04  profilanswer
 

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/
n°2164579
eZula
Posté le 19-11-2012 à 11:03:17  profilanswer
 

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)

n°2164583
yoyovento
passion ≠ raisons
Posté le 19-11-2012 à 11:13:46  profilanswer
 

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


---------------
http://www.vectra-c-gts.com/
n°2164585
eZula
Posté le 19-11-2012 à 11:27:00  profilanswer
 

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

n°2164596
yoyovento
passion ≠ raisons
Posté le 19-11-2012 à 14:33:37  profilanswer
 

waou c'est géant ca !!


---------------
http://www.vectra-c-gts.com/
mood
Publicité
Posté le 19-11-2012 à 14:33:37  profilanswer
 

n°2166082
yoyovento
passion ≠ raisons
Posté le 29-11-2012 à 20:38:09  profilanswer
 

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/
n°2166087
eZula
Posté le 29-11-2012 à 21:24:17  profilanswer
 

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

n°2166113
yoyovento
passion ≠ raisons
Posté le 30-11-2012 à 08:19:34  profilanswer
 

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/
n°2166119
eZula
Posté le 30-11-2012 à 09:11:34  profilanswer
 

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.

n°2166276
yoyovento
passion ≠ raisons
Posté le 01-12-2012 à 18:27:17  profilanswer
 

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/
n°2166282
eZula
Posté le 01-12-2012 à 21:01:40  profilanswer
 

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 ?

n°2166290
yoyovento
passion ≠ raisons
Posté le 01-12-2012 à 22:23:17  profilanswer
 

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/
n°2166303
eZula
Posté le 02-12-2012 à 11:15:02  profilanswer
 

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

n°2166311
yoyovento
passion ≠ raisons
Posté le 02-12-2012 à 13:50:53  profilanswer
 

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


---------------
http://www.vectra-c-gts.com/
n°2172579
yoyovento
passion ≠ raisons
Posté le 25-01-2013 à 10:09:45  profilanswer
 

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 ?

n°2172651
eZula
Posté le 25-01-2013 à 19:45:55  profilanswer
 

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

n°2172808
yoyovento
passion ≠ raisons
Posté le 27-01-2013 à 19:23:08  profilanswer
 

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

n°2172840
eZula
Posté le 28-01-2013 à 10:47:43  profilanswer
 

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

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

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

 

Sujets relatifs
Uploader un fichier dans tous les dossiers de mon ftp ?Insérer TEXTE sur IMAGE dans SLIDESHOW (wordpress)
Effectuer un fopen sur un fichier situer sur un nasAppeler fichier SQL
[PERL] Récupérer des données dans un fichier txtLien vers un fichier autre
Spliter un fichier TEXTE (couper en 2)besoin d'aide kit graph. espace texte impossible
Lien absolu-relatif pour un fichier local ? [RESOLU] 
Plus de sujets relatifs à : Remplacer une partie de texte par une autre dans un fichier texte


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR