delphi, recherche dans un text

delphi, recherche dans un text - Delphi/Pascal - Programmation

Marsh Posté le 12-04-2003 à 18:40:39    

:hello:  
bonjour,  
je suis débutant en delphi , j ai deja fait une petite calculatrice pour calculer des prix avec et sans taxe  pour des besoins d un jeu :d
et j avais l intention de continuer dans ma lancer pour faire un prog permettant de mieux gerer son comptes et ses planetes (oui c est un jeu ou on gere des planetes :o)  lol :D )
 
bref ce que je voudrai faire c est 2 onglets (deja fait ^^)
dans le 1er une boite de dialogue pour copier coller les pages html et une fois traité les données serai reparties dans le 2nd onglet ,
 
or j ai un pb , car je ne sais pas quoi utiliser pour rechercher les informations de la page...
ex les données sont
nomdelaplanete (x,y) [TAG]  
Government system: Democratic
Production type: Minero
Population race: Xillor size: 38675 M
Influence:     385.2M (396.5M)  
 
j ai cherché toute la matinée sur des sites comment extraire cela mais rien n est expliquer clairement j ai bien trouvé la fonction find , mais rien ne décris precisément comment s en servir , pour recuperer des infos qui se situent avant ou apres des lettres fixes :-/  
si qq peut m aider :cry:
j en peu pu  :sisicaivrai


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
Reply

Marsh Posté le 12-04-2003 à 18:40:39   

Reply

Marsh Posté le 12-04-2003 à 18:44:25    

Pour résumer, tu veux trouver des positions de chaînes et en extraire des morceaux ?
Les fonctions utiles pour ça c'est Pos, Copy et Delete.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-04-2003 à 18:47:30    

:jap:  j vais faire des recherche dessus merci  :jap:


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
Reply

Marsh Posté le 12-04-2003 à 18:53:29    

pos  ca compte les case ,  
vu que certaines choses peuvent etre + ou - longue je sais pas si ca marche , y a pas des commande qui permete de dire  
on prend ce qui est entre ".   " et "  ."  
 
?


---------------
Feedback      D.o.H  -  Seine Saint Denis  -  93
Reply

Marsh Posté le 12-04-2003 à 19:38:21    

:??:
 
 


p: Integer;
s: string;
 
s := la_chaine_a_analyser
 
p := Pos('.   ', s);
if p > 0 then
begin
  Delete(s, 1, p + 1);
  p := Pos('   .', s);
  if p > 0 then
    Delete(s, p, Length(s));
end;


 
le resultat est dans s


Message édité par antp le 12-04-2003 à 19:38:45

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 12-04-2003 à 20:11:47    

Si tu utilises un ou plusieur fichier XML pour stoker tes infos ca sera deaj plus facile !
 
XML RULEZ !
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 16-04-2003 à 02:51:16    

connais pas l xml :D
 
sinon merci bocoup pour la fonction ca march eimpect ,
bon jsuis juste bloqué au milieu a cause de deux variables qui se suivent , pb elle sont differante et avec ma methode cha marche po :(
faudrai que je vois ca a tete reposée :D
 
 
 
sinon  
sur ce petit prog
http://wishmaster.free.fr/Hyperium [...] calc04.exe
j ai un autre prob lol
dans l onglet fleet  
c est les coordonnées de deux planetes , en X et Y  
1ere celle de depart 2nd celle d arrivée
pour connaitre le tps de deplacement , faut faire la differance et voir celui qui est le plus grand,  
 
mon code donne
 
procedure TMain.FlCalc(Sender: TObject);
begin
Val(FleetX0.Text, X0, Erreur);
Val(FleetY0.Text, Y0, Erreur);
Val(FleetX1.Text, X1, Erreur);
Val(FleetY1.Text, Y1, Erreur);
X:=X0-X1;  // on fait la dif des X
X:=abs(X);
str(X:0:0, Xn);  
Y:=Y0-Y1;  // dif sur Y
Y:=abs(Y);
str(Y:1:0, Yn);
EditPBT.Text:=Yn;   // la ca met Y sur la page d avant dans le prix avant taxe c est pour les tests
EditPAT.Text:=Xn;   // idem mais pour X
If Yn >= Xn then     // on regarde lequel est le plus grand
FleetTime.Caption:=Yn; // on remplace le 0 a coté de "hours"
If Xn > Yn then
FleetTime.Caption:=Xn;
end;
 
 
bon le pb , c est etrange si en X pour la 1ere planete 30 et que pour la seconde vous mettiez un chiffre entre 34 et 39  
meme si Y est plus grand  que X, ce sera toujours X qui est afficher :(
 
meme si X0 est négatif :( tant que c est entre 34 et 39 ca veux rien savoir)
 
jsuis desecpéré de 21H  a 0H je me suis prix le chou pour que la variable des chiffre absolue fonctionne (pourtant ct tt con :cry:) et depuis minuit c est ca :cry:
en plus j arrive plus a ecrire et jvois deux ecran [:sisicaivrai]
 
hilppppp


Message édité par de@thm@ster of hell le 16-04-2003 à 02:51:43
Reply

Marsh Posté le 16-04-2003 à 09:33:21    


Ben moi aussi je connaissais avant puis un beau jour j ai fait tut ou j ai pu voir a quel point sans rien connaitre a l XML on pouvait recuperer les infos qu on voulait dans ordre qu on a choisi et qd on veut et sans forcer.
Pour le reste j ai pas lu le poste :D car ta pas utilise de balise code et CAI MAL !
 
@->--


Message édité par KrzAramis le 16-04-2003 à 09:33:42

---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 16-04-2003 à 09:41:03    

he les comparaisons de chaînes contenant des valeurs numériques c'est un peu dangereux hein :o
par ex '2' > '10'


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 09:56:18    

antp a écrit :

he les comparaisons de chaînes contenant des valeurs numériques c'est un peu dangereux hein :o
par ex '2' > '10'


c est a moi que tu parles ?  :??:


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 16-04-2003 à 09:56:18   

Reply

Marsh Posté le 16-04-2003 à 10:05:44    

t'as mis des comparaisons de chaînes dans un de tes posts sur ce topic ? non, donc c'est pas à toi :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 10:39:26    

antp a écrit :

t'as mis des comparaisons de chaînes dans un de tes posts sur ce topic ? non, donc c'est pas à toi :D


 
Champion des excuse bidon hein ?  [:ddr555] ok ok ! je viens de voir. C est clair qu il manque un StrToInt big time meme deux si c est pas plus. La balise code CAI PO FAIT POUR LES CHIOTS !
 
@->--
 
PS: sans rancunes antp !


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 16-04-2003 à 11:15:55    

Ouais enfin c'est pas clair tout ce qu'il fait... normalement il ne faudrait convertir en string que lors de l'affichage, et ne pas manipuler les données converties.


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 11:19:48    

Newbie POWA !  [:ddr555]  
je ne pense qu il ai une definition bien precise de ce qu il veut faire. Sinon meme en tant que newbie il y aurai un peu plus de recherches prealables.
Cependant pourquoi ne dois t on pas manipuler les donnes converties ?
 
@->--


---------------
The Only Way for Evils to Triumph is for Good Men to do Nothing @->-- Cours Réseaux@->-- Mon Site
Reply

Marsh Posté le 16-04-2003 à 11:23:54    

je veux dire qu'il faut éviter de faire des conversions dans tous les sens
 
genre je lis un nombre : str -> float, ok
je fais un calcul sur le fload
j'affiche le float : float -> str, ok, mais pourquoi stocker cette chaine si on ne doit pas l'utiliser ailleurs ?
je fais une comparaison sur ces chaînes : tu dis d'utiliser StrToInt : non faut utiliser le float plutôt que de reconvertir le str


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 13:20:44    

WebBrowser.OleObject.Document.body.innerText
renvoie le texte de la page sans les balises.
si ca peut t'aider..

Reply

Marsh Posté le 16-04-2003 à 14:06:19    

je veux dire qu'il faut éviter de faire des conversions dans tous les sens
genre je lis un nombre : str -> float, ok
je fais un calcul sur le fload
j'affiche le float : float -> str, ok, mais pourquoi stocker cette chaine si on ne doit pas l'utiliser ailleurs ?
bah si elle est utilisé plus bas dans la fonction IF
je fais une comparaison sur ces chaînes : tu dis d'utiliser StrToInt : non faut utiliser le float plutôt que de reconvertir le str
la j ai rien compris

Reply

Marsh Posté le 16-04-2003 à 14:08:55    

krzAramis a écrit :

Newbie POWA !  [:ddr555]  
je ne pense qu il ai une definition bien precise de ce qu il veut faire. Sinon meme en tant que newbie il y aurai un peu plus de recherches prealables.
Cependant pourquoi ne dois t on pas manipuler les donnes converties ?
 
@->--  


>sisi
> [:toad666] jlai ai fait les recherches , d ailleur ca marche , mais pk il arrive po  a voir que 4 plus petit que 30 jsais pas moi :cry:
 
 

Reply

Marsh Posté le 16-04-2003 à 14:24:20    

De@thm@ster Of Hell a écrit :

j'affiche le float : float -> str, ok, mais pourquoi stocker cette chaine si on ne doit pas l'utiliser ailleurs ?
bah si elle est utilisé plus bas dans la fonction IF (1)
je fais une comparaison sur ces chaînes : tu dis d'utiliser StrToInt : non faut utiliser le float plutôt que de reconvertir le str
la j ai rien compris (2)
 


 
(1) oui justement c'est ça qui est pas bien, pourquoi faire un if sur les chaines au lieu d'un if sur les floats ? :heink:
(2) voir (1) :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 14:49:55    

donc faire un truc comme cha
 
If Y >= X then  
FleetTime.Caption:=Yn;  
If X > Y then
FleetTime.Caption:=Xn;
end;

Reply

Marsh Posté le 16-04-2003 à 14:51:55    

oui
mais y a un truc que je pige pas dans ton code :
str(X:0:0, Xn);
ça doit faire quoi ? convertir X en chaîne en gardant 0 chiffres ? :)
 
Sinon y a aussi IntToStr, FloatToStr, Format, etc.
c'est peut-être plus pratique, vu que ça te renvoie une chaîne tu n'as pas besoin de variable temporaire, tu peux l'assigner directement au .Text que tu veux


Message édité par antp le 16-04-2003 à 14:53:27

---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 16-04-2003 à 14:55:36    

antp a écrit :

oui  CHA MARCHE =)  [:yaisse]
mais y a un truc que je pige pas dans ton code :
str(X:0:0, Xn);
ça doit faire quoi ? convertir X en chaîne en gardant 0 chiffres ? :)


bah au debut je savais pas a quoi sa servait , quand j ai commencé cette calculette (ca faisait 6mois :D) puis j ai reutiliser ca et comme ca marchais bah j ai jamais changé , =)
mais je crois que la longeur meme si elle est a 0 permet de garder tout les resultats

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

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