begin process at 2012 02 10 11:47:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C#

 > 

Algorithme

 > 

Compression, Split et Cryptage

 > 

Pauvre problème de SubString()


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Pauvre problème de SubString()

jeudi 15 janvier 2009 à 16:11:08 | Pauvre problème de SubString()

Rhend

Bonjour,

Voila j'ai un pauvre problème avec la fonction SubString et je ne comprend pas pourquoi ca ne marche pas :(

Le but étant de prendre qu'une partie d'un mot contenu dans une List-Box et ca ne fonctionne pas :/

int longueur = lb_Panier.Text.Length - 1;
string nomproduit = lb_Panier.Text.Substring(2, longueur);

l'erreur etant :
ArgumentOutOfRangeException
L'index et la longueur doivent faire référence à un emplacement situé dans la chaîne.
Nom du paramètre : length
jeudi 15 janvier 2009 à 16:22:29 | Re : Pauvre problème de SubString()

casy

Membre Club
Réponse acceptée !
Tu essaye de prendre N-1 caractères (longueur) à partir du troisième caractère (position 2). Seuleument à partir du 3eme caractère, il ne te reste que N-2 caractères, donc en prenant N-1 caractères, tu dépasse la fin de la chaine (OutOfRange)


---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
jeudi 15 janvier 2009 à 16:28:45 | Re : Pauvre problème de SubString()

Rhend

Bien vu Casy, j'avais pas fait la gymnastique jusqu'au bout ! je valide
samedi 17 janvier 2009 à 09:58:51 | Re : Pauvre problème de SubString()

Michou69004

Réponse acceptée !
Bonjour,
Precision: Dans ton cas, j'ai l'impression que tu veux prendre ta chaine de caractere a partir du 3eme caractere.

En C# tu peux donc faire :

string nomproduit = lb_Panier.Text.Substring(2);

plutot que

string nomproduit = lb_Panier.Text.Substring(2, longueur);

Plus rapide.

Cordialement.
samedi 17 janvier 2009 à 11:37:24 | Re : Pauvre problème de SubString()

Rhend

Effectivement je m'embettais pour rien ^^
mercredi 5 mai 2010 à 23:55:10 | Re : Pauvre problème de SubString()

moussstiqu3

Bonjour j'ai aussi ce problème, mais je ne vois pas d'où ça viens.
Le message d'erreur est le suisvant

startIndex ne peut pas être supérieur à la longueur de la chaîne.
Nom du paramètre : startIndex



Mon but est simple : je recois constemment 6 bytes puis 5 secondes puis 6 bytes puis 5 secondes...etc...

Je veux prendre ces 6 bytes et les spliter dans une textbox (pour le moment) et j'ai l'erreur nommée ci-dessus.

Aussi, si ça marche une fois, ça foire la deuxième fois...je ne vois pas pq!

Voici mon code

Code C# :
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.IO.Ports;

namespace SerialComm
{
    public partial class Form1 : Form
    {
        static SerialPort serialPort1;
        public Form1()
        {
            serialPort1 = new SerialPort("COM4", 9600, Parity.None, 8, StopBits.One);
            InitializeComponent();
            serialPort1.DataReceived += new SerialDataReceivedEventHandler(port_DataReceived);

        }
        private void Form1_Load(object sender, EventArgs e)
        {
            serialPort1.Open();
        }
        private void port_DataReceived(object sender, SerialDataReceivedEventArgs e)
        {
            string value = "";
            serialPort1.DiscardInBuffer();

            char[] buffer = new char[6];
            while ((serialPort1.BytesToRead > 0) && (serialPort1.BytesToRead < 6))
            {
                int bytes_read = serialPort1.Read(buffer, 0, buffer.Length);
               
                for (int i = 0; i < bytes_read; i++)
                {
                    value += buffer[i];
                }
            }
            safeInput(value.ToString());
            
        }

        private void safeInput(string msg)
        {


            textBox1.Invoke(new EventHandler(delegate
            {

  // donnée isolée de la 3 en prenant 1 donnée (1 byte)

                string message1 = msg.Substring(0,1);
                string message2 = msg.Substring(1,1);
                string message3 = msg.Substring(2,1);
                string message4 = msg.Substring(3,1);

                textBox1.SelectedText = string.Empty;
                textBox1.AppendText(message1);
                textBox1.ScrollToCaret();

                textBox2.SelectedText = string.Empty;
                textBox2.AppendText(message2);
                textBox2.ScrollToCaret();

                textBox3.SelectedText = string.Empty;
                textBox3.AppendText(message3);
                textBox3.ScrollToCaret();

                textBox4.SelectedText = string.Empty;
                textBox4.AppendText(message4);
                textBox4.ScrollToCaret();
            }));
            
        }
    }
}


merci de votre aide


Cette discussion est classée dans : problème, substring, longueur, lb, pauvre


Répondre à ce message

Sujets en rapport avec ce message

Problème Substring [ par theflayer ] Salut, En faite j'ai un soucis avec Substring(x, y). Ça marche avec certaine valeur mais pas avec d'autres, j'ai essayé plein de chose mais ça marche probleme du date [ par Dinnodzoff ] Bonjour à tous, Vu ma question... inutile de vous rappeler que je suis débutant... Voila mon problème... J'ai dans un datagridview un certain nombre Problème de connexion avec une BDD SQL Server [ par filiplarlibe ] Bonjour à tous, Je viens tout juste de débuter en C# (moins d'une journée). J'ai suivi des tuto mais je rencontre un problème et je ne sais pas pour Voici mon problème [ par winklewild ] Bonjour csharpfr, Voici mon problème : J'ai besoin que pour toutes les méthodes d'une classe, il s'effectue une action avant et après l'exécution du Site internet avec interface [ par misterbenj ] Voilà, il y a quelques mois, en allant manger dans un resto que je ne connaissais pas et qui ne disposait pas de site internet, l'idée m'est venu de c Problème d'affichage de grid en c# (wpf) [ par filiplarlibe ] Bonjour à tous, Je débute en c# et en formulaire wpf et je rencontre un problème avec mon formulaire créé. Je m'explique : J'ai créé un formulaire 8 C#: longueur d'un fichier gzip [ par Karibot ] Bonjour, ma question est simple, je souhaiterai obtenir la longueur (lenght) d'un fichier compressé. en fait en temps normal (cas d'un fichier non com Problème de redimensionnement de formulaire suivant la résolution de l'ecran [ par adjibimel ] Salut à tous J'ai un problème de redimensionnement de mes formulaires. En effet j'ai codé mon logiciel avec Visual Studio 2005 langage C# sur une mac Tremblement de formulaire au cours de son affichage [ par adjibimel ] Salut à tous Un nouveau problème auquel je suis confronté. Au cours de l'exécution de mon logiciel(codé avec Visual Studio 2005 langage c#), lorsque j


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,387 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales