Aligner des données sous batch

Fermé
michel62 - 31 janv. 2009 à 19:37
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 - 3 févr. 2009 à 08:13
Bonjour,

j'ai créé une ligne de commande "batch" pour mon widget yahoo "euro lightning monitor", cette commande est générée à chaques impacts d'orages dans un rayon de 3000 km...

voici la commande : echo %date% %time% <num> <brg> <dst> Km >> "C:\Orages\IMPACTS.TXT"

et voici le résultat :

---------------------------------------------------------
Date Heure Impacts Direction Distance
---------------------------------------------------------
31-01-2009 18:23:03.81 3 sud 1115 Km
31-01-2009 18:33:04.01 2 nord 1857 Km
31-01-2009 18:38:04.21 1 sud-est 1232 Km
31-01-2009 18:43:04.45 1 sud-est 1521 Km
31-01-2009 18:53:03.73 1 nord 1389 Km
31-01-2009 18:58:04.01 2 sud 1317 Km
31-01-2009 19:03:04.29 3 sud 1462 Km
31-01-2009 19:08:03.87 1 nord 1835 Km
31-01-2009 19:13:04.09 2 sud 1527 Km
31-01-2009 19:14:01.98 3 nord 798 Km
31-01-2009 19:14:55.70 2 nord 798 Km
31-01-2009 19:15:31.32 1 sud-est 1590 Km
31-01-2009 19:20:31.34 1 nord 2151 Km
31-01-2009 19:25:31.35 2 sud 1196 Km
31-01-2009 19:30:31.43 5 sud 1477 Km

il y a des mauvais espacements pour les distances en KM... comment faire?

pouvez-vous m'aider?

de plus, je dois récupérer des données qui se trouvent en format texte sur un site ouvert au public et pouvoir les rappatrier dans un autre fichier que je baptise "strikes.txt", mais je ne sait pas comment faire? que dois-je ajouter à la suite de ma première commande? celle qui génère déja mes alertes d'impacts de foudre?

merci de m'aider!

cordialement à tous!

michel

26 réponses

chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
31 janv. 2009 à 22:10
Salut,
à part recopier le fichier avec des espaces.....
for /F "tokens=1-6 delims= " %%a in (IMPACTS.TXT) do if "%%d"=="nord" (echo %%a %%b %%c %%d %%e%%f>>ton_fichier.txt) else (if "%%d"=="sud" (echo %%a %%b %%c %%d %%e%%f>>ton_fichier.txt) else (echo %%a %%b %%c %%d %%e%%f>>ton_fichier.txt))
Mais c'est loin d'être génial, je te l'accorde!!!
Pour ta deuxième question, tu peux utiliser le même principe de commande
for /F "delims=" %%a in (nom_fichier_text_a_copier) do echo %%a>>strikes.txt
J'espere ca pourra t'aider!!
@+
0
merci de m'avoir répondu, mais je ne comprends pas trés bien, dois-je rajouter tex commandes a la suite de mes premières commandes???

pour infos :

j'ai créé un répertoire : "C:\Orages" et le fichier généré se trouve dans ce répertoire et se nomme "IMPACTS.TXT"

pour résumer : C:\Orages\IMPACTS.TXT

pourrais-tu me réecrire ta commande avec le chemin exact? pour que je fasse "copier/coller" dans ma ligne de commande (tout en pensant a ajouter mes 3 variables décrites plus haut...

pour le site internet, voici le chemin exact : "http://www.blitzortung.net/strikes.txt" et je voudrais rapatrier ce fichier dans c:\Orages\STRIKES.TXT.


merci de ton aide! même si ce n'est pas trés "jolis" du moment que ca fonctionne!!!!

merci de me donner un peu de ton temps!

michel
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
31 janv. 2009 à 23:42
salut;

echo %date% %time% <num> <brg> <dst> Km >> "C:\Orages\IMPACTS.TXT"
c:
cd\Orages
for /F "tokens=1-6 delims= " %%a in (IMPACTS.TXT) do if "%%d"=="nord" (echo %%a %%b %%c %%d %%e%%f>>IMPACTS1.TXT) else (if "%%d"=="sud" (echo %%a %%b %%c %%d %%e%%f>>IMPACTS1.TXT) else (echo %%a %%b %%c %%d %%e%%f>>IMPACTS1.TXT))
del IMPACTS.TXT
ren IMPACTS1.TXT IMPACTS.TXT

Le batch copie dans un nouveau fichier,efface l'ancian et le renomme comme l'ancien.. (Important les 3 lignes de la boucle for doivent etre sur une et une seule ligne dans ton batch!!! mais manque de place ici....) et fais un test avant en copiant ton fichier original!!!
Je comprends mieux ta 2 eme question!! Mais à part faire un transfere en FTP....je vois pas trop.
faudrait rajouter alors une ligne:
ftp -inv -s:"cmd.ftp"
et crée un fichier cmd.ftp avec les commande suivantes:
open adresse_ip_du_serveur
login
password
get STRIKES.TXT
J'espere ca pourra t'aider!!
@+
0
cela ne fonctionne pas, les chiffres sont toujours mal alignés...

essaie avec cet exemple tu fait "copier/coller" dans un fichier de test

---------------------------------------------------------
Date Heure Impacts Direction Distance
---------------------------------------------------------
31-01-2009 18:23:03.81 3 sud 1115 Km
31-01-2009 18:33:04.01 2 nord 1857 Km
31-01-2009 18:38:04.21 1 sud-est 1232 Km
31-01-2009 18:43:04.45 1 sud-est 1521 Km
31-01-2009 18:53:03.73 1 nord 1389 Km
31-01-2009 18:58:04.01 2 sud 1317 Km
31-01-2009 19:03:04.29 3 sud 1462 Km
31-01-2009 19:08:03.87 1 nord 1835 Km
31-01-2009 19:13:04.09 2 sud 1527 Km
31-01-2009 19:14:01.98 3 nord 798 Km
31-01-2009 19:14:55.70 2 nord 798 Km
31-01-2009 19:15:31.32 1 sud-est 1590 Km
31-01-2009 19:20:31.34 1 nord 2151 Km
31-01-2009 19:25:31.35 2 sud 1196 Km
31-01-2009 19:30:31.43 5 sud 1477 Km

tu te rendra compte que malgrés ta bonne volontée cela ne mets pas le fichier comme je voudrais, regerde l'exemple ci dessous :

----------------------------------------------------------------------------
Date Heure Impacts Direction Distance
----------------------------------------------------------------------------
31-01-2009 18:23:03 3 sud 1115 Km
31-01-2009 18:33:04 2 nord 1857 Km
31-01-2009 18:38:04 1 sud-est 1232 Km
31-01-2009 18:43:04 1 sud-est 1521 Km
31-01-2009 18:53:03 1 nord 1389 Km
31-01-2009 18:58:04 2 sud 1317 Km
31-01-2009 19:03:04 3 sud 1462 Km
31-01-2009 19:08:03 1 nord 1835 Km
31-01-2009 19:13:04 2 sud 1527 Km
31-01-2009 19:14:01 3 nord 798 Km
31-01-2009 19:14:55 2 nord 798 Km
31-01-2009 19:15:31 1 sud-est 1590 Km
31-01-2009 19:20:31 1 nord 2151 Km
31-01-2009 19:25:31 2 sud 1196 Km
31-01-2009 19:30:31 5 sud 1477 Km

si tu connait un autre langage de programation ou un fichier que tu copile, ce serait aussi bien, car a ce moment la, je le lancerai une fois par jour... le problème est aussi d'enlever les dizièmes de secondes...
le programme peut être en vb compilé si tu connait... du moment que ca me formatte bien mes données.

merci encore de tes efforts, car tu est le seul qui essaie de m'aider!

michel
0
et ZUT! le formatage ne fonctionne pas ici, l'exemple "idéal" n'est plus formaté, mais tu comprends bien ce que je recherche ;o)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
1 févr. 2009 à 09:54
Salut,
Sinon tu peux compiler ca:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct str
{char datum[20];
char time[20];
char t[5];
char region[10];
char km[10];
char deno[3];
}str;
int main()
{FILE*fp;
FILE*fd;
char*temp=(char*) malloc (3*sizeof(char));
str stru[100];
int i=0;
fp=fopen("NOM_DE_TON_FICHIER","r");
fd=fopen("NOM_DE_TON_FICHIER_MODIFIE","w+");
while (!feof(fp))
{
fscanf(fp,"%s %s %s %s %s %s",&stru[i].datum,&stru[i].time,&stru[i].t,&stru[i].region,&stru[i].km,&stru[i].deno);
if (strcmp(stru[i].region,"sud")==0) strcat(stru[i].region,"    ");
if (strcmp(stru[i].region,"nord")==0) strcat(stru[i].region,"   ");
if (atoi(stru[i].km)>1000)  strcpy (temp,stru[i].km);
if (atoi(stru[i].km)<1000 && atoi(stru[i].km)>100) {*temp=' ';temp++;strcpy(temp,stru[i].km);temp=temp-1;};
if (atoi(stru[i].km)<100 && atoi(stru[i].km)>10)  {*temp=' ';temp++;*temp=' ';temp++;strcpy(temp,stru[i].km);temp=temp-2;};
if (atoi(stru[i].km)<10)  {*temp=' ';temp++;*temp=' ';temp++;*temp=' ';temp++;strcpy(temp,stru[i].km);temp=temp-3;};
fprintf(fd,"%s %s %s %s %s%s\n",stru[i].datum,stru[i].time,stru[i].t,stru[i].region,temp,stru[i].deno);
i++;
}
close(fd);
close(fp);
return 1;
}

mais ca me donne le bon resultat sur mon poste quand je copie et colle dans un autre fichier de type notepad....
En effet, je crois que sur le site ca ne marche pas...
@+
0
Encore un grand merci,

mais je compile comment? je n'ai rien pour compiler... hélas je suis "nul"
pourrais-tu me guider ou me le compiler et me l'envoyer a cette adresse : michel1853@hotmail.fr

si cela t'intéresse, j'ai trouvé un widget yahoo qui "décompile" un autre widget... eurolightning est décompilé, c'est du "xml" et du "jar", parfaitement lisible avec un éditeur de textes, donc modifiable... il suffit de reprendre le répertoire de "décompilation "et de "glisser/poser" pour le recompiler !!!!

il te faut :

-yahoo widget engine
- eurolightning.widget
- widget converter

si tu t'y connait en "xml" et en "jar".........

en attendant, si tu peux me guider pour compiler ce que tu m'a envoyé ou me l'envoyer compilé?

encore merci d'être le seul qui m'aide!

michel
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
1 févr. 2009 à 14:33
Salut,
Je t'ai envoyé un zip avec un exe qui récupérera les données de ton fichier strikes.txt aussi!!
Dis moi si cela marche!!
(PS il faut mettre les fichier sous le répertoire c:\Orages\)
@+
0
Un grand merci!
je viens de récupérer tes précieux fichiers et les exemples...

j'ai dû faire une gaffe, car j'ai effacé malencontreusement mon fichier IMPACT.TXT... donc je vais attendre mais comme ca "barde" en ce moment au sud de l'italie (tu devrais vois ca! c'est trés impressionant sur la carte)!
donc mon fichier IMPACTS vas se recréer rapidment!

j'ai fait l'essai sur le serveur, et et effet, les donées sont bien rapatriées, mais le seul petit "blème", regarde le début de la ligne qui est la 1ere lors du rapatriement... est-ce normal ce " x>" ? bug?


x>2009-02-01 12:54:22.821999 -3.220050 36.508334
2009-02-01 12:54:22.821999 -3.220050 36.508334
2009-02-01 12:54:22.821999 -3.220050 36.508334

et comment faire, pour qu'il se lance par exemple toutes les heures ou 2 heures (pour éviter les doublons)... gestionaire de tâches?

de plus, connais-tu une "astuce" pour enlever les dizièmes de secondes dans le fichier IMPACT?
tu me dira, c'est du détail, mais si tu as une astuce.....

je te remercie encore de m'aider ainsi... mais essaie de te détendre aussi, c'est dimanche aussi pour toi!

Michel
0
re!

je crois que j'ai un problème, car le fichier IMPACT.TXT généré avant par le widget s'écrit maintenant comme suit :

%date% %time% 14 nord 1398 Km


si j'attends d'autres impacts, ca s'écrit comme ceci :


%date% %time% 14 nord 1398 Km %date% %time% 5 sud-est 1703 Km %date% %time% 15 nord 1403 Km
%date% %time% 14 nord 1363 Km....

ca a commencé quand j'ai lancé la 1ere fois ton batch avec l'exécutable et sa dll... au début, j'ai pensé que ton exécutable restait résident, j'ai donc rebooté, effacé le fichier IMPACT, attendu qu'il se génère par le widget, mais voila le résultat... je n'y comprends plus rien, surtout que ma ligne de commande "interne" au widget n'a pas étée modifiée... curieux.... qu'en penses-tu?
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
1 févr. 2009 à 15:59
Salut,
ben oui car l'exe de recup du fichier strike.txt, n'est qu'un buffer et une connexion à un site distant (l'url config est celle-ci:http://www.blitzortung.net/strikes.txt),grâce à la dll mais libéré à la fin de la connexion.... et qui lit la page.....
Néanmoins, quand je vais sur le site et fait une copie du fichier avec mon explorateur, j'obtiens un fichier texte comme tu le décris....(pour les fichiers strikes.txt)
Pour que le batch se lance toutes les 2 heures ben tu peux utiliser le scheduler windows. Et le mieux serait de sauvegarder tes fichiers strikes.txt dans le batch (avec un move strikes.txt repertoire_de_destination, en renommant ce fichier)
@+
0
reuuuuuhhhh... encore moi!

pour la récup des strikes, plus de problèmes, avec le schéduler et la commande supplémentaire. ca, c'est réglé!

mais quand au fichier IMPACT "natif" toujours le même problème qui est apparu, le widget m'écrit ceci :

%date% %time% 11 sud-est 1765 Km
%date% %time% 5 sud-est 1716 Km
%date% %time% 12 sud-est 1628 Km

pourquois il ne m'écrit plus la date, ni l'heure et il ne respecte plus mes espaces?

c'est la ligne de commande écrite comme ceci (dans les préférences -> alertes) :

echo %date% %time% <num> <brg> <dst> Km >> "C:\Orages\IMPACTS.TXT"

avant cela ne le faisait pas... c'est le seul problème qui reste...
merci encore et excuses de t'accaparer ainsi ;o)
michel
0
echo %date% %time% <num> <brg> <dst> Km >> "C:\Orages\IMPACTS.TXT"

entre date et time = 3 espaces
entre time et <num>= 8 espaces
entre <num> et <brg>=12 espaces
entre <brg> et <dst>=9 espaces
1 espace entre <dst> et km

je te ré écrit cela car sur le forum, les espaces s'annulent!

le widget me dit ceci dans les préférences :

"lancer un programme/script au moment des alertes? avec une case que je coche pour "oui"

sous la fenêtre pour y mettre ma ligne de commande, il est écrit ceci :

Employez le format de chemin jscript (ex: c:\temp\filename.bat).Vous pouvez employer les variables suivantes : <dst>=distance d'impacts la plus proche
<brg>=afficher l'orage le plus proche
<num>=nombre d'impacts

est-ce que cela peut t'aider à résoudre mon problème? et c'est quoi un "jscript"? est-ce que c'est plus facile et radical qu'un batch???

michel
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
1 févr. 2009 à 16:38
Salut,
J'ai installé les widgets...je fais un test chez moi!!
Je te tiens au jus rapidement
Tu confirme:30 45N latitude
15 30E longitude pour avoir l'Italie??
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
1 févr. 2009 à 17:07
Salut,
J'arrive pas à avoir de fichier qi ce genere pour les alertes....mais pour le chemin apparemment faut le renseigner comme cecla:c:/repertoir/ton_fichier_bat
0
tu lance le widget eurolightning, tu entre ces coordonnées :

Latitude = 50.12611
Longitude = 2.63639
c'est là que j'habite dans le pas-de-calais.

tu vas ensuite sur obtions et sur alertes, et tu y rentre la commande suivante (dans la fenêtre) :

[echo %date% %time% <num> <brg> <dst> Km >> "C:\Orages\IMPACTS.TXT"]

j'ai mis des crochets pour que tu vie les espaces...

tu coche alerte messages pour controler

tu crée un fichier :

C:\Orages
tu clique sur le widget et un petit meny en haut a gauche s'ouvre "strike, densité..etc... et tu vas avoir une alerte et ton fichier IMPACTS.TXT sra généré dans le répertoire

essaie et dis le, je reste en standby!

michel
0
les espaces ne sont pas inscrits sur le forum !!! GRRRRR!!!

regarde sur le topic d'en haut, je t'avais décrit les espaces

si tu lances un "batch externe", les 3 variables <num> <brg> etc... ne seront pas prises en compte! c'est ca le problème, sinon, il y a longtemps que tu aurais réglé!

je suis derrière mon ordi!

michel
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
1 févr. 2009 à 17:44
Salut,
Si je lance:echo %date% %time% <num> <brg> <dst> Km >> c:/orages/IMPACTS.TXT
dans la ligne à cet effet, j'obtiens bien le fichier...apres je lance un batch avec le renom.exe et impakt.exe et tout semble ok.....
J'ai loopé quelchose??
0
alors pourquois chez moi, ca n'affiches plus la date et l'heure, mais %date% %time% et le reste est correct...
grand mystère!!!!!

j'ai pourtant rebooté, éteins puis rallumé le pc.. toujours la même chose, alors qu'avant j'avais bien la date et l'heure...

et chez toi? ca fonctionne correct???
qu'est-ce qui a pu bien me faire cela?
0
chuka Messages postés 965 Date d'inscription samedi 11 octobre 2008 Statut Membre Dernière intervention 29 juillet 2010 378
1 févr. 2009 à 18:33
Salut,
chez moi ca marche!!! jai les fichier avec la bonne date et heure sans probleme.....
echo %date% %time% <num> <brg> <dst> Km >> c:/orages/IMPACTS.TXT (c'est ce que j'ai mis dans la ligne de programme ou script...)
Et ca marche nickel!!!
Ben là je comprends pas trop.....
Essaye de copier coller ma ligne de commande...
Dis moi si ca change quelque chose??
0
Bon, Ca Y est!!!!

j'ai désinstallé hayoo engine + les widgets, passé un coup d'antivirus (rien...ouf!), passé un bon coup de start registery booster pour y faire un bon nettoyage, remis ta ligne de commande, et........... CA MARCHE!!!

Ouf!

il ne me restera plus quand j'aurais assez de données de lancer ton programme qui me reformattera mon disque dur totallement ;o)

non, je rigole!

que penses-tu de ce widget? cela t'intéresse t'il? tu vas te régaler fin juin jusqu'à septembre! et en plus, c'est hyper fiable!

regarde sur le site de blitzorbung, tu veras un autre logiciel exécutable) LIGHTNING VIEWER, il est SUPER!

quand je te disait qu'il existe un widget qui décompile un widjet de ton choix, pour modifier ou améliorer puis le recompile pour le rendre utile a yahoo engine.... tu verras si a tout hasard, tu ne te prends pas au jeux d'améliorer un jour ce fameux widget "euro lightning monitor"... on ne sait jamais, tu tu sait trpatouiller le XML...

encore un grand merci de ton aide et de m'avoir donné ton temps de repos pour me le consacrer. je ne sait pas comment te remercier!

on garde le contact?

bien a toi.

Michel
0