Multiligne IDE

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Multiligne IDE

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Multiligne IDE

Message par Backup »

Code : Tout sélectionner

 For i=0 |
      To 100
  Debug i
Next 
Fred
Site Admin
Messages : 2809
Inscription : mer. 21/janv./2004 11:03

Re: Multiligne IDE

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Multiligne IDE

Message 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 ! :)
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Multiligne IDE

Message 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.
Avatar de l’utilisateur
Fortix
Messages : 559
Inscription : mar. 30/mai/2006 17:03

Re: Multiligne IDE

Message 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:
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Multiligne IDE

Message 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)
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Multiligne IDE

Message par kwandjeen »

Merci Falsam :lol: c'est déjà beaucoup mieux que la ligne de 12 kilomètres.

Bon dimanche.
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Multiligne IDE

Message 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.
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Multiligne IDE

Message 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 :)
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Multiligne IDE

Message 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
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: Multiligne IDE

Message 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
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: Multiligne IDE

Message 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)"
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
kwandjeen
Messages : 204
Inscription : dim. 16/juil./2006 21:44

Re: Multiligne IDE

Message par kwandjeen »

Merci Falsam je vais adopter ta méthode du coup ça m'ira très bien sans avoir un outils externe.
Répondre