Page 1 sur 2

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

Publié : lun. 31/déc./2007 16:35
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

Publié : lun. 31/déc./2007 16:57
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 ;)

Publié : lun. 31/déc./2007 17:05
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:

Publié : lun. 31/déc./2007 17:18
par Chris
Super ce ch'ti programme! 8O

J'adopte!!!

Publié : lun. 31/déc./2007 17:37
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:

Publié : lun. 31/déc./2007 17:39
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:

Publié : lun. 31/déc./2007 17:51
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

Publié : lun. 31/déc./2007 18:08
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:

Publié : lun. 31/déc./2007 18:17
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) ??

Publié : lun. 31/déc./2007 18:36
par Chris
Tu n'as même pas à mettre le chemin.

Publié : lun. 31/déc./2007 18:39
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: )

Publié : lun. 31/déc./2007 18:47
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)

Publié : lun. 31/déc./2007 19:43
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 
 

Publié : mar. 01/janv./2008 12:09
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 ?

Publié : mar. 01/janv./2008 14:24
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)