Page 1 sur 1

Multiligne IDE

Publié : ven. 22/mars/2013 16:55
par kwandjeen
Bonjour,

J'ai un petit soucis avec le multiligne IDE. Ben en fait je comprends pas comment il faut faire.

Un exemple parle mieux

Code : Tout sélectionner

For i=0 +
      To 100
  Debug i
Next
Ce code génère une erreur chez moi.
Je code avec une base sqlite et les lignes interminables c'est une vrai source de bug donc comment faire pour que le saut de ligne IDE fonctionne.

EDIT : HS. Certain fichier comme Esgrid de Srod plante suivant les progs depuis la version 5.11b3 alors qu'en 5.11b2 ça passe (sous xp 32 bits). Quelqu'un à remarqué le problème avec ce fichier ou d'autres.

Re: Multiligne IDE

Publié : ven. 22/mars/2013 18:36
par Backup

Code : Tout sélectionner

 For i=0 |
      To 100
  Debug i
Next 

Re: Multiligne IDE

Publié : ven. 22/mars/2013 18:37
par Fred
Tu ne peux pas faire ca, le multiline ne fonctionne que pour les expressions. Montre nous plutot une de tes lignes interminables pour voir ce qu'on peut faire.

Re: Multiligne IDE

Publié : ven. 22/mars/2013 19:03
par Backup
ha bah avec mon EPB on peut faire :

Code : Tout sélectionner


For i=0 _
	To 100
	Debug i
Next

;
; EPB
ou ça :

Code : Tout sélectionner


_Block ; Boucle 
	For i=0 _
		To 100
		Debug i
	Next
_EndBlock
Gna gna gna ! :)

Re: Multiligne IDE

Publié : ven. 22/mars/2013 21:49
par kwandjeen

Code : Tout sélectionner

CheckDatabaseUpdate(0, "CREATE TABLE user (co VARCHAR(10), nom VARCHAR(30), prenom VARCHAR(30), pass VARCHAR(15),groupe INT, menu_avion INT, planification INT, alerte INT, chat INT, menu_admin INT, def_of INT, def_station INT, g_groupe INT, g_user INT, system INT,arscript INT)")
Voilà un exemple
peut on avoir un truc du genre

Code : Tout sélectionner

CheckDatabaseUpdate(0, "CREATE TABLE user , |
(co VARCHAR(10), nom VARCHAR(30), prenom VARCHAR(30), |
, pass VARCHAR(15),groupe INT, menu_avion INT, |

etc.

Re: Multiligne IDE

Publié : sam. 23/mars/2013 22:43
par Fortix
Ah wouai :lol: , il faut trouver un truc pour ça :?
presque tout les IDE ont un truc pour palier à ce genre de souci :x

mais je pense avoir une petite idée, il faut je pense
copier un caractère "retour chariot" quelques part :lol:
et ensuite le coler sur l'IDE et cocher dans l'option "caractère unicode"
je n'ai pas encore essayé et je n'ai franchement pas envies vue la complexitée
de la chose;

la vérité est que je préfère subir en attendant qu'il y est une MAJ :lol:

Re: Multiligne IDE

Publié : sam. 23/mars/2013 23:23
par falsam
Bonjour kwandjeen.

Une solution que j'utilise et qui me permet aussi de bien voir et de modifier facilement la structure d'une table.

Code : Tout sélectionner

Global Reqsql.s

Reqsql = "CREATE TABLE user ("
Reqsql +    "co VARCHAR(10),"
Reqsql +    "nom VARCHAR(30),"
Reqsql +    "prenom VARCHAR(30),"
Reqsql +    "pass VARCHAR(15),"
Reqsql +    "groupe INT,"
Reqsql +    "menu_avion INT,"
Reqsql +    "planification INT,"
Reqsql +    "alerte INT,"
Reqsql +    "chat INT,"
Reqsql +    "menu_admin INT,"
Reqsql +    "def_of INT,"
Reqsql +    "def_station INT,"
Reqsql +    "g_groupe INT,"
Reqsql +    "g_user INT,"
Reqsql +    "system INT,"
Reqsql +    "arscript INT"
Reqsql + ")"

CheckDatabaseUpdate(0, Reqsql)

Re: Multiligne IDE

Publié : dim. 24/mars/2013 9:13
par kwandjeen
Merci Falsam :lol: c'est déjà beaucoup mieux que la ligne de 12 kilomètres.

Bon dimanche.

Re: Multiligne IDE

Publié : dim. 24/mars/2013 9:37
par kwandjeen
En cherchant j'ai trouvé un code de netmaestro qui fait exactement le retour à la ligne
Il faut le compiler et utiliser l'exe compilé en outils personnalisés.

Code : Tout sélectionner

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

Global NewList line$() 
Global find_de_ligne$

find_de_ligne$ = "&_"

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$, find_de_ligne$ , 1) 
        concat = #True 
        linein$ = Trim(Left(linein$, FindString(linein$, find_de_ligne$,1)-1))+" " 
      Else 
        concat = #False 
      EndIf      
      line$() = line$() + LTrim(linein$) 
    Else 
      If FindString(linein$, find_de_ligne$ , 1) 
        concat = #True 
        linein$ = RTrim(Left(linein$, FindString(linein$, find_de_ligne$,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
Voici comment remplir les options
Image

Pourquoi ne pas mettre ça dans l'éditeur directement ? Ce ne doit pas être compliqué non ?

exemple de code

Code : Tout sélectionner

CheckDatabaseUpdate(0, "CREATE TABLE user ( &_
      co VARCHAR(10), &_
      nom VARCHAR(30), &_
      prenom VARCHAR(30), &_
      pass VARCHAR(15), &_
      groupe INT, &_
      menu_avion INT, &_
      planification INT, &_
      alerte INT, &_
      chat INT, &_
      menu_admin INT, &_
      def_of INT, &_
      def_station INT, &_
      g_groupe INT, &_
      g_user INT, &_
      system INT, &_
      arscript INT")
En tout cas merci pour vos réponses.

Re: Multiligne IDE

Publié : dim. 24/mars/2013 12:27
par Backup
sans avoir testé;
le code de netmaestro
permet de transformer un Code ayant des coupure de ligne avec le "&_" en code normal avant comilation
mais ensuite , que ce passe t'il si quelque minute apres tu recharges le fameux code ?

il me semble qu'il aura perdu tout les Attributs de coupures ... :roll: non?

dans mon IDE (EPB) j'utilise cette methode , mais sans sauvegarder , puisque je soumet la transformation
directement au compilateur , ce qui fait que le fichier original n'est pas touché ;)

on conserve ainsi , les attributs de coupure ..
si Fred veux faire la meme chose , c'est au niveau de son IDE qu'il doit le faire ..
perso comme Cesure j'ai choisi " _" (Espace+"_") ; c'est plus simple a ecrire que "&_" de netmaestro :)

Re: Multiligne IDE

Publié : dim. 24/mars/2013 17:28
par falsam
Une autre manière d'écrire la chaine Sql

Code : Tout sélectionner

Global Reqsql.s

Reqsql = "CREATE TABLE user (," +
         "co VARCHAR(10)," +
         "nom VARCHAR(30)," +       ;Nom
         "prenom VARCHAR(30)," +    ;Prénom
         "pass VARCHAR(15)," +      ;Mot de pass
         "groupe INT," +
         "menu_avion INT," +
         "planification INT," +
         "alerte INT," +
         "chat INT," +
         "menu_admin INT," +
         "def_of INT," +
         "def_station INT," +
         "g_groupe INT," +
         "g_user INT," +
         "system INT," +
         "arscript INT)" 
Cette méthode permet elle aussi d'associer un commentaire pour chacun des champs.


Les derniére versions de purebasic permettent d'écrire UNE instruction sur plusieurs lignes comme le montre l'exemple ci-dessous.

Code : Tout sélectionner

Procedure Test(Parametre1,  ;Premier paramétre 
                Parametre2,  ;Deuxiéme paramatre
                Parametre3)  ;Troisiéme paramétre
  
  Debug Parametre1
  Debug Parametre2
  Debug Parametre3
EndProcedure

OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "Line continuation",
           #PB_Window_SystemMenu |
           #PB_Window_MinimizeGadget|
           #PB_Window_SizeGadget)
          
Test(10, 
     11,
     12)
      
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Cette continuité de ligne est s'effectue avec avec les opérateurs ',' '|' '+' AND OR XOR

Re: Multiligne IDE

Publié : dim. 24/mars/2013 17:34
par Backup
falsam a écrit :
Les derniére versions de purebasic permettent d'écrire UNE instruction sur plusieurs lignes comme le montre l'exemple ci-dessous.

Code : Tout sélectionner

Procedure Test(Parametre1,  ;Premier paramétre 
                Parametre2,  ;Deuxiéme paramatre
                Parametre3)  ;Troisiéme paramétre
  
  Debug Parametre1
  Debug Parametre2
  Debug Parametre3
EndProcedure

OpenWindow(0, #PB_Ignore, #PB_Ignore, 640, 480, "Line continuation",
           #PB_Window_SystemMenu |
           #PB_Window_MinimizeGadget|
           #PB_Window_SizeGadget)
          
Test(10, 
     11,
     12)
      
Repeat
Until WaitWindowEvent() = #PB_Event_CloseWindow
Cette continuité de ligne est s'effectue avec avec les opérateurs ',' '|' '+' AND OR XOR
oui mais si tu avais lu le debut du topic , elle ne permet pas ceci

Code : Tout sélectionner

For i=0 |
   To 100
   Debug i
Next

;
; EPB
bref on ne peut pas couper ou l'on veux (sauf avec EPB)

voila voila :mrgreen:

exemple extreme qu'on peut faire avec EPB (ceci se compile sans erreur )

Code : Tout sélectionner


For _
	i _
	= _
	0 _
	To _
	100
	Debug _
	i
Next _
i

; EPB

Re: Multiligne IDE

Publié : dim. 24/mars/2013 17:45
par falsam
@Dobro : j'ai lu le début. Je ne faisais que proposer une solution différente de celle que j'ai posté un peu plus haut dans ce post. De même j'ai fais une piqûre de rappel sur les possibilités de continuation de ligne dans la version actuelle de Pure Basic.

la meilleurs méthode et de n'avoir AUCUN caractère de continuation de ligne :D.
en php ça donnerais ceci :

Code : Tout sélectionner

Reqsql = "CREATE TABLE user(,
         co VARCHAR(10),
         nom VARCHAR(30),
         prenom VARCHAR(30),
         pass VARCHAR(15),
         groupe INT,
         menu_avion INT,
         planification INT,
         alerte INT,
         chat INT,
         menu_admin INT,
         def_of INT,
         def_station INT,
         g_groupe INT,
         g_user INT,
         system INT,
         arscript INT)"

Re: Multiligne IDE

Publié : lun. 25/mars/2013 9:30
par kwandjeen
Merci Falsam je vais adopter ta méthode du coup ça m'ira très bien sans avoir un outils externe.