• 16 Mai 2024, 07:59:05


Auteur Sujet: Comment faire pour emplacer certain espace par des saut de ligne.  (Lu 2908 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Bonjour à toutes et à tous,

dans le but d'un système, ou j'utilise PHP/MySQL/pwn,

j'ai remarqué que le php/html/css etait plus intelligent que le pwn.

En effet quand la ligne est trop longue, il fait un saut de ligne a la place du dernier espace pour rester dans le cadre du thème.

malheureusement, je remarque que pawno est moins intelligent, donc dans mon dialog, il ne me rétrécira jamais les lignes.

J'aimerais donc savoir comment faire pour qu'a partir du moment ou il y a trop de caractère et que le dialogue est trop large, il me le coupe automatiquement a l'espace précédent avec un \n.


merci d'avance.

j'espère que vous m'avez compris :D
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Gilux

  • *
  • Mafioso
  • GOOBY PLS
  • Messages: 2209
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #1 le: 14 Janvier 2011, 14:29:45 »
C'est juste une idée mais tu peux utiliser la fonction strlen de PHP : http://fr2.php.net/strlen pour connaître la longueur d'une chaîne de caractères  ;)
++

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #2 le: 14 Janvier 2011, 16:50:21 »
la je parle en pwn, mais si j'utilise ça, je risque de tomber dans un mot et le couper s'est pas pas beau
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #3 le: 14 Janvier 2011, 17:05:16 »
Salut,

Le pawno n'est pas moins intelligent ou '' moins " performant qu'un autre code. C'est juste que ces possibilités sont moindres, mais tu peut créé une fonction qui va te permettre de couper et sauvegarder une chaine de caractères via du code qui relève du C/C++
Déjà, il faut faire une boucle qui va repère les espaces et en même temps vérifier si il existe un autre espace après, ou si la chaine dépasse 128 caractères, si on est dans ce cas, alors on va venir couper à cette espace donc on relèveras a quel bit est l'espace pour la sauvegarde et l'envoie de la seconde chaine.

A+, Sam.

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #4 le: 14 Janvier 2011, 20:37:15 »
Arf je connais pas le c/c++ :D

merci quand même, maintenant je sais que je doit utilisez un plugin.
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #5 le: 14 Janvier 2011, 21:15:28 »
Non, du tout.. >.< Le pawno est une variante du C/C++ simplifiez, certes mais ça y ressemble vachement. J'essayerais de faire une petite fonction, grâce à l'aide de Syg, qui m'avait déjà filer un coup de main à ce sujet. Mais là fonction qu'il m'avait fait filer ne traiter pas certain cas.

Hors ligne Ssk

  • *
  • Lulu's Stunt - Le serveur stunt de Lulu !
  • Messages: 8154
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #6 le: 14 Janvier 2011, 21:37:51 »
Ce n'est pas le pawn qui n'est pas intelligent, c'est sa-mp qui ne préfère pas gérer ça ^^



Derrière tout programme se cache un programmeur, je considère le monde comme un programme.
Mon blog

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #7 le: 15 Janvier 2011, 01:54:19 »
Je suis pas plus intelligent xD, je ne sais pas comment faire xD
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne chneubeul

  • *
  • Gangster
  • GTA Online Addict :)
  • Messages: 1132
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #8 le: 15 Janvier 2011, 06:14:35 »
Salut, je te propose un petit exercice. Essaye de le faire en recherchant des bouts de code et j'te dirais tes erreurs, et te donnerais une correction. Mais essaye franchement, au pire essaye de marquer comment tu pense faire le code en francais genre :

si a supérieur à x etc..

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #9 le: 15 Janvier 2011, 17:19:36 »
Merci pour ton aide.

Dans un premier temps, je pensait à ça,

new longueur=strlen(mastring);
if(longueur > 256)
{
    strins(mastring, "\n", longueur/2,3);
}

Mais bon pas très esthétique, et peut être pas fonctionnel. et ça ne coupe pas pas forcement aux espace.

Le mieux je pense serais de faire une boucle qui vérifie tout les caractère pour voir si il y a des espaces.
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #10 le: 15 Janvier 2011, 21:34:02 »
J'ai fais un petit code que je pense être l'une des meilleurs solutions pour ton problème.

Citation de: Chaine
12347 215431 comment vas tu comment vas tu comment vas tu comment vas tu comment vas tu comment vas tu comment donc rahahalet nez
Citation de: Résultat
12347 215431 comment vas tu comment vas tu comment vas tu comment vas tu comment vas tu comment vas tu comment donc rahahalet STOP nez

SAMPStringLimiter(string[])
{
new stringlength = 0, sentencelength = 0, wordlength = 0;

stringlength = strlen(string); // Récupération de la taille de la phrase

for(new i = 0; i < stringlength; i++) // Boucle sur tous les caractères de la phrase
{
   if(string[i] == 32) // Espace
   {
if((sentencelength + wordlength) > 128) // Prédiction pour s'aretter
{
   print("STOP !");
}
       
       wordlength = 0; // Remet la taille du mot courrant à zéro
}
else
{
wordlength++; // Incrémentation de la taille du mot
   }
   
   sentencelength++; // Incrémentation de la taille de la phrase
}
}

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #11 le: 15 Janvier 2011, 22:55:58 »
Merci Xatrick, mais pourrait tu m'expliquer comment utiliser? Car je seche :s
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #12 le: 15 Janvier 2011, 23:23:53 »
Pour l'instant, ce code est obsolète mais il pourrait te mener sur la voie ;).

Tu as juste à l'utiliser en lui fournissant la chaîne à couper.


SAMPStringLimiter("12347 215431 comment vas tu comment vas tu comment vas tu comment vas tu comment vas tu comment vas tu comment donc rahahalet nez");

Hors ligne scott1

  • *
  • Gangster
  • Messages: 1440
    • Voir le profil
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #13 le: 15 Janvier 2011, 23:59:52 »
Je doit faire mon

strins
mais je sais pas a quelle position démarrer :s
Refait un Game mode a partir d'une page blanche



Mes partages:

Systeme de Radio avec Frequence Création

Ajouter des véhicule dans le LARP - Godfather Tuto

Anti Cheat "JunkBuster" traduit en FR Traduction

LARP Traduit FR, V0.3 Traduction

Hors ligne Xartrick

  • *
  • C & Pawn Programmer
  • Messages: 1391
    • Voir le profil
    • Xartrick's Area
Re : Comment faire pour emplacer certain espace par des saut de ligne.
« Réponse #14 le: 16 Janvier 2011, 00:05:01 »
Je t'ai fais une include, peut-être que cela te parleras plus.

Code: (x_textsplit.inc) [Sélectionner]
/*  Text Splitting for long text
 *
 *  (c) Copyleft 2011-2012, Xartrick
 *  This work is submitted under Beerware rights.
 *
 *  By Xartrick
 */


#if defined _x_textsplit_included
#endinput
#endif


#define _x_textsplit_included
#pragma library textsplit


#include <a_samp>


forward SAMPStringLimiter(string[]);
forward split(strsrc[], strdest[][], delimiter);


SAMPStringLimiter(string[])
{
new stringlength = 0, sentencelength = 0, wordlength = 0;
new sentence[2][128];

stringlength = strlen(string);

for(new i = 0; i < stringlength; i++)
{
    if(string[i] == 32)
    {
if((sentencelength + wordlength) > 128)
{
    string[i] = '£';
break;
}
       
        wordlength = 0;
}
else
{
wordlength++;
    }
   
    sentencelength++;
}

split(string, sentence, '£');

return sentence;
}

split(strsrc[], strdest[][], delimiter)
{
    new i = 0, li = 0, aNum = 0, len = 0;
   
    while(i <= strlen(strsrc))
    {
        if(strsrc[i] == delimiter || i == strlen(strsrc))
        {
            len = strmid(strdest[aNum], strsrc, li, i, 128);
            strdest[aNum][len] = 0;
            li = i+1;
            aNum++;
        }
       
        i++;
    }
    return 1;
}

À placer dans /pawno/include/ (par défaut).

Exemple d'utilisation:


Code: (Pawn) [Sélectionner]
new chaine[BIG_ARRAY] = "Ceci est un simple texte pour comprendre comme mon (Xartrick) include fonctionne, elle permet de couper un texte en deux parties (seulement) si celui-ci est trop long (128 caractères).";
new result[2][128];

result = SAMPStringLimiter(chaine);

printf("%s", result[0]);
printf("%s", result[1]);