Ligne de code sur plusieures lignes [Super résolu]

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Ligne de code sur plusieures lignes [Super résolu]

Message par Kwai chang caine »

J'ai trouvé ce code que Maitre NETMAESTRO, a bien voulu donner, afin que les frustrés comme moi, apprecient quand meme noel, apres l'arrivée de la 4.20 :?
http://www.purebasic.fr/english/viewtop ... sc&start=0

Le bleme c'est qu'il faut apparement configurer le compilateur d'une certaine maniere et j'ai rien compris.
J'ose pas lui demander, car j'ai peur que la barriere de la langue ne donne une reponse encore plus compliqué que la question :?

Alors que faut il ecrire ou cocher et à que endroit.
Enfin un mode d'emplois un peu plus complet quoi :roll:

Il dit :
Create an exe from this source, configure it as mentioned above. Remember the double quotes around "%COMPILEFILE", choose "Before Compile/Run" and "Wait until tool quits".

Code : Tout sélectionner

; Very simple preprocessor for line continuations 
; netmaestro December 2007 
; More sophistication needed, starting point only 

Global NewList line$() 

For i=0 To CountProgramParameters()-1 
  path$ + ProgramParameter(i) 
Next 

If ReadFile(0, path$) 
  concat = #False 
  While Not Eof(0) 
    linein$ = RTrim(ReadString(0)) 
    If concat 
      If FindString(linein$, "&_" , 1) 
        concat = #True 
        linein$ = Trim(Left(linein$, FindString(linein$, "&_",1)-1))+" " 
      Else 
        concat = #False 
      EndIf      
      line$() = line$() + LTrim(linein$) 
    Else 
      If FindString(linein$, "&_" , 1) 
        concat = #True 
        linein$ = RTrim(Left(linein$, FindString(linein$, "&_",1)-1))+" " 
      Else 
        concat = #False 
      EndIf 
      AddElement(line$()) 
      line$() = linein$ 
    EndIf 
  Wend 
  CloseFile(0) 
  If CreateFile(1, path$) 
    ForEach line$() 
      WriteStringN(1, line$()) 
    Next 
    CloseFile(1) 
  EndIf 
EndIf 
Ce code avec underscore :

Code : Tout sélectionner

For i &_ 
  = 1 &_ 
To 5 
  Debug i 
Next 

r.d = 100/10 +  &_ 
      200/5 +   &_ 
      3 
      
Debug "I am " +     &_ 
       Str(r) +     &_ 
       " years old" 

mystring.s = "The rain      &_ 
             in spain       &_ 
             falls mainly   &_ 
             on the plain" 
Debug mystring
Doit donner ce code :

Code : Tout sélectionner

For i = 1 To 5 
  Debug i 
Next 

r.d = 100/10 + 200/5 + 3 

Debug "I am " + Str(r) + " years old" 

mystring.s = "The rain in spain falls mainly on the plain" 
Debug mystring
Merci de votre aide
Dernière modification par Kwai chang caine le lun. 31/déc./2007 18:48, modifié 1 fois.
Anonyme

Message par Anonyme »

- Tu prends ta première source , tu créer un exe que tu place a coté de PBcompiler.exe

- vas dans tools->configure tools

tu devrais pouvoir te débrouiller maintenant ;)
SpaceMan
Messages : 290
Inscription : mar. 26/oct./2004 19:35
Contact :

Message par SpaceMan »

Crée un exe à l'aide du premier code puis (je l'ai nommé Plugin).
comme l'a dit Cpl.Bator, tu vas dans le menu Outils --> Outils personnalisés puis tu cliques sur Nouveau.
Sur la fenetre qui apparait, tu choisis l'exe crée à partir du premier code(je l'ai nommé Plugin).
Dossier de travail n'est pas imortant !
puis tu continues comme sur cette image
Image
Ensuite tu valides et tu compiles le deuxième code ça devrait marcher
:wink:

et merci pour ce code que tu es allé cherché au fin fond des profondeurs :lol:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Super ce ch'ti programme! 8O

J'adopte!!!
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci les copains.

@CHRIS
Content de t'avoir fait plaisir à travers le maitre incontesté et incontestable qu'est la grenouille MAESTRO 8)
Tu vois que quand je cause pas, je bosse :lol:
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Kwai chang caine a écrit :Merci les copains.

@CHRIS
Content de t'avoir fait plaisir à travers le maitre incontesté et incontestable qu'est la grenouille MAESTRO 8)
Tu vois que quand je cause pas, je bosse :lol:
Si seulement tu causais un peu moins... :roll: :lol:
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Message par Anonyme2 »

Chris a écrit :
Kwai chang caine a écrit :Merci les copains.

@CHRIS
Content de t'avoir fait plaisir à travers le maitre incontesté et incontestable qu'est la grenouille MAESTRO 8)
Tu vois que quand je cause pas, je bosse :lol:
Si seulement tu causais un peu moins... :roll: :lol:
Il a été vacciné avec une aiguille de phonographe :D
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Si seulement tu causais un peu moins...
Et encore je suis sous traitement et je me retiens.
Je suis content qu'avec ces deux elements tu constate que ça va mieux :lol:
Denis a écrit : Il a été vacciné avec une aiguille de phonographe :D
:lol: :lol: Tu fait pas si bien dire pour le phonographe, j'en ai un et je collectionne quelques vieux appareils de "Hi-Fi stereo" car j'ai été 10 ans DJ sur les routes de france et de navarre.

Et puis j'ai arrétté, car je ne sais pas pourquoi, les gens disaient que depuis que l'on m'avais donné un micro tout neuf, ils entendaient plus la musique :roll:
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

J'ai une autre question ....

Est on obligé de mettre le chemin en dur dans ligne de commande ??
Car je deplace le dossier complet de pure d'une machine à l'autre, on peut pas lui dire que c'est dans le dossier de pure (chemin relatif) ??
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

Tu n'as même pas à mettre le chemin.
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Merci CHRIS encore mieux alors :D
Il est trop fort ce FRED, y m'epate, y m'epate, hé hé hé (Monsieur Louis :wink: )
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

ça marche de la balle :D
J'ai mis le nom seulement de mon executable dans le champs "Ligne de commande" et dans "Nom"

Et ça m'a ecrit les debug comme si y'avais pas de retour de ligne.
C'est l'enfer ce pure, si on peux lui rajouter des fonctions comme ça en quelques minutes, on se demande pourquoi FRED y se decarcasse encore :lol:

Encore mille mercis à toute la famille de cette aide, sans oublier Mr MAESTROKERMIT bien sur 8)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Ouuuaaaahhh!!!!
J'ai meme modifié le code pour le rendre compatible VB.
Tant qu'a faire, ça me gonfle deja tellement de mettre des "Cotes" en VB et des "Points virgules" en pure pour les commentaires :?
J'me gourre toujours, car je bosse sur les deux en meme temps :cry:

Alors pour une fois, que j'ai la main..... :D
En VB le retour ligne est "espace + underscore" et il ne genere pas d'espace.
Alors que le code du maitre etait "&_" et rajoutait un espace qui en fait n'est pas obligatoire si on ne le desire pas.
Je sais que tout le monde sait faire (puisque j'y suis arrivé :wink:), mais bon en esperant que si il y en a un moins bon que moi.... (Dur dur 8O)
Il faut dire que je tiens à ma place de dernier, au moins y'a personne qui me bat :D
Donc je suis le premier en partant de la fin :D
Alors que si je m'améliore.....(ça va etre dur), je serais plus jamais premier, j'suis bourrin, mais je me rend compte quand meme :lol:

Bon on m'a dit de ne pas trop parler :roll:
Alors voila :

Code : Tout sélectionner

; http://www.purebasic.fr/english/viewtopic.php?t=30284&postdays=0&postorder=asc&start=0

; Codé par Netmaestro December 2007 
; Modifié par KCC en decembre 2007 pour etre compatible VB
; Avec l'aide de Cpl.bator, SpaceMan, Chris

; Mode d'emplois :

; Créer un exe et le déposer dans le répertoire du debugger
; Puis aller dans le menu Outils --> Outils personnalisés puis tu cliquer sur Nouveau. 
; Sur la fenetre qui apparait,tu choisis l'exe crée et déposé dans le répertoire du debugger
; Ligne de commande = Nom de l'exe (Sans le chemin)
; Argument = "%COMPILEFILE" (Avec les guillemets)
; Dossier de travail = Vide
; Nom =  Nom de l'exe (Sans le chemin)
; Evenement pour declencher l'outil = Avant Compiler/executer
; Cocher "Attendre la fin du programme"

Global NewList Line$() 

For i = 0 To CountProgramParameters() - 1 
 Path$ + ProgramParameter(i) 
Next 

If ReadFile(0, Path$) 
 
 Concat = #False 
 
 While Not Eof(0) 
  
  LineIn$ = RTrim(ReadString(0)) 
  
  If Concat 
   
   If FindString(LineIn$, " _" , 1) 
    Concat = #True 
    LineIn$ = Trim(Left(LineIn$, FindString(LineIn$, " _", 1) - 1))
   Else 
    Concat = #False 
   EndIf      
   
   Line$() = Line$() + LTrim(LineIn$) 
  
  Else 
   If FindString(LineIn$, " _" , 1) 
     Concat = #True 
     LineIn$ = RTrim(Left(LineIn$, FindString(LineIn$, " _", 1) - 1))
   Else 
    Concat = #False 
   EndIf 
   
   AddElement(Line$()) 
   Line$() = LineIn$ 
 
  EndIf 

 Wend 

 CloseFile(0) 

 If CreateFile(1, Path$) 

  ForEach line$() 
   WriteStringN(1, Line$()) 
  Next 

  CloseFile(1) 
 
 EndIf 

EndIf 
 
wolfjeremy
Messages : 1202
Inscription : sam. 31/déc./2005 23:52

Message par wolfjeremy »

:x J'ai bon mettre des &_ ça ne marche pas :cry:
par contre ton code d'exemple marche... il y a quelque chose de spécial à savoir pour que ça marche ?
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Message par Kwai chang caine »

Pour les "&_" faut prendre le premier code celui de Maitre NETMAESTRO, qui a décidé de mettre en caractere de retour ligne "&_" donc celui la :

Code : Tout sélectionner

; Very simple preprocessor for line continuations 
; netmaestro December 2007 
; More sophistication needed, starting point only 

Global NewList line$() 

For i=0 To CountProgramParameters()-1 
  path$ + ProgramParameter(i) 
Next 

If ReadFile(0, path$) 
  concat = #False 
  While Not Eof(0) 
    linein$ = RTrim(ReadString(0)) 
    If concat 
      If FindString(linein$, "&_" , 1) 
        concat = #True 
        linein$ = Trim(Left(linein$, FindString(linein$, "&_",1)-1))+" " 
      Else 
        concat = #False 
      EndIf      
      line$() = line$() + LTrim(linein$) 
    Else 
      If FindString(linein$, "&_" , 1) 
        concat = #True 
        linein$ = RTrim(Left(linein$, FindString(linein$, "&_",1)-1))+" " 
      Else 
        concat = #False 
      EndIf 
      AddElement(line$()) 
      line$() = linein$ 
    EndIf 
  Wend 
  CloseFile(0) 
  If CreateFile(1, path$) 
    ForEach line$() 
      WriteStringN(1, line$()) 
    Next 
    CloseFile(1) 
  EndIf 
EndIf
Mode d'emplois :

Créer un exe et le déposer dans le répertoire du debugger
Puis aller dans le menu Outils --> Outils personnalisés puis tu cliquer sur Nouveau.
Sur la fenetre qui apparait,tu choisis l'exe crée et déposé dans le répertoire du debugger
Ligne de commande = Nom de l'exe (Sans le chemin)
Argument = "%COMPILEFILE" (Avec les guillemets)
Dossier de travail = Vide
Nom = Nom de l'exe (Sans le chemin)
Evenement pour declencher l'outil = Avant Compiler/executer
Cocher "Attendre la fin du programme"

Puis tu essaye avec ce code par exemple :

Code : Tout sélectionner

For i &_ 
  = 1 &_ 
To 5 
  Debug i 
Next 

r.d = 100/10 +  &_ 
      200/5 +   &_ 
      3 
      
Debug "I am " +     &_ 
       Str(r) +     &_ 
       " years old" 

mystring.s = "The rain      &_ 
             in spain       &_ 
             falls mainly   &_ 
             on the plain" 
Debug mystring
Pour avoir la meme syntaxe que les codes de retour à la ligne de VB, c'est à dire "espace + underscore", car j'aime pas a avoir à réfléchir si je suis sur VB ou pure, il faut utiliser celui la :

Code : Tout sélectionner

; http://www.purebasic.fr/english/viewtopic.php?t=30284&postdays=0&postorder=asc&start=0 

; Codé par Netmaestro December 2007 
; Modifié par KCC en decembre 2007 pour etre compatible VB 
; Avec l'aide de Cpl.bator, SpaceMan, Chris 

; Mode d'emplois : 

; Créer un exe et le déposer dans le répertoire du debugger 
; Puis aller dans le menu Outils --> Outils personnalisés puis tu cliquer sur Nouveau. 
; Sur la fenetre qui apparait,tu choisis l'exe crée et déposé dans le répertoire du debugger 
; Ligne de commande = Nom de l'exe (Sans le chemin) 
; Argument = "%COMPILEFILE" (Avec les guillemets) 
; Dossier de travail = Vide 
; Nom =  Nom de l'exe (Sans le chemin) 
; Evenement pour declencher l'outil = Avant Compiler/executer 
; Cocher "Attendre la fin du programme" 

Global NewList Line$() 

For i = 0 To CountProgramParameters() - 1 
 Path$ + ProgramParameter(i) 
Next 

If ReadFile(0, Path$) 
  
 Concat = #False 
  
 While Not Eof(0) 
  
  LineIn$ = RTrim(ReadString(0)) 
  
  If Concat 
    
   If FindString(LineIn$, " _" , 1) 
    Concat = #True 
    LineIn$ = Trim(Left(LineIn$, FindString(LineIn$, " _", 1) - 1)) 
   Else 
    Concat = #False 
   EndIf      
    
   Line$() = Line$() + LTrim(LineIn$) 
  
  Else 
   If FindString(LineIn$, " _" , 1) 
     Concat = #True 
     LineIn$ = RTrim(Left(LineIn$, FindString(LineIn$, " _", 1) - 1)) 
   Else 
    Concat = #False 
   EndIf 
    
   AddElement(Line$()) 
   Line$() = LineIn$ 
  
  EndIf 

 Wend 

 CloseFile(0) 

 If CreateFile(1, Path$) 

  ForEach line$() 
   WriteStringN(1, Line$()) 
  Next 

  CloseFile(1) 
  
 EndIf 

EndIf 
 
Utilise la meme methode qu'au dessus pour installer l'exe.
Puis tu peux essayer avec ce code :

Code : Tout sélectionner

;  ***********************************************
;                        Code
;  ***********************************************

For i _ 
  = 1 _ 
To 5 
  Debug i 
Next 

r.d = 100/10 +  _ 
      200/5 +  _ 
      3 
      
Debug "I am " +     _ 
       Str(r) +     _ 
       " years old" 

mystring.s = "The rain      _ 
             in spain       _ 
             falls mainly   _ 
             on the plain" 
Debug mystring
Vala vala j'espere que cette fois ça marchera, autrement n'hésite pas pour une fois que je peux expliquer quelque chose .... :D
Et encore merci de l'aide de tous les copains pour que j'arrive a y comprendre quelque chose 8)
Répondre