IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Discussion :

mettre à jour une listbox


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2013
    Messages : 5
    Par défaut mettre à jour une listbox
    Bonjour à tous,

    je cherche a ouvrir les header d'un fichier excel dans un listbox.
    Lorsque j'ouvre un fichier, j'aimerais que la liste se mette à jour en ajoutant les nouveau header à la suite.

    Voici le code que j'utilise :

    Pour info ma listbox s'appelle tri


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     
    function open_dinon_Callback(hObject, eventdata, handles)
     
    [filename, pathname] = uigetfile( ...
        {'*.csv', 'All flight data (*.csv)'; ...
           }, ...
        'SELECT DATA FROM DINON');
    % If "Cancel" is selected then return
    if isequal([filename,pathname],[0,0])
        return
        % Otherwise construct the fullfilename and Check and load the file.
    else
        File = fullfile(pathname,filename);
     set(handles.adress_dinon,'string',filename)
    end
     
    %lecture du fichier et stockage de variable dans la figure
     
    [num,text,raw] = xlsread(File)
     
    handles.dinon.text=text
    handles.dinon.raw=raw
    guidata(gcf,handles) %enregistrement de dinon
     
    oldlist={get(handles.tri,'string')}
    if isempty(oldlist{:})
        set(handles.tri,'string',handles.dinon.text(1,:))
    else
    set(handles.tri,'string',{oldlist{:},handles.dinon.text{1,:}})
    end
    lorsque j'ouvre par exemple le même fichier deux foix j'ai le message d'erreur suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    oldlist = 
     
        {28x1 cell}
     
    ??? Error using ==> set
    Cell array of strings may only contain string and numeric matrices.
     
    Error in ==> Data_management>open_dinon_Callback at 327
    set(handles.tri,'string',{oldlist{:},text{:}})
     
    Error in ==> gui_mainfcn at 95
            feval(varargin{:});
     
    Error in ==> Data_management at 42
        gui_mainfcn(gui_State, varargin{:});

    Merci de votre aide

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Attention à la syntaxe {contenu} qui place le contenu dans une cellule.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    oldlist = {get(handles.tri,'string')}
    if isempty(oldlist{:})
        set(handles.tri,'string',handles.dinon.text(1,:))
    else
        set(handles.tri,'string',[oldlist ; handles.dinon.text(1,:).'])
    end

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2013
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2013
    Messages : 5
    Par défaut
    la mise en cellule est attentionnelle, dans le cas contraire je n'arrive même pas à afficher les headers à le première utilisation.
    le fichier s'appelle ici iaero mais la démarche est parfaitemennt identique.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    [num,text,raw] = xlsread(File)
     
    handles.iaero.text=text
    handles.iaero.raw=raw
    guidata(gcf,handles) %enregistrement de iaero
     
     
    oldlist={get(handles.tri,'string')}
    if isempty(oldlist)
        set(handles.tri,'string',handles.iaero.text(1,:))
    else
    set(handles
    J'attends vos conseils avec impatience

  4. #4
    Invité
    Invité(e)
    Par défaut
    get(handles.tri,'string') est déjà un tableau de cellules, là tu rajoutes un niveau.

    Regarde ce que retournent ces lignes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    >> isempty({})
    >> isempty({{}})

Discussions similaires

  1. [Débutant] Mettre à jour une listbox par rapport à une autre C#
    Par MarkouZz68 dans le forum C#
    Réponses: 3
    Dernier message: 18/06/2013, 11h24
  2. Mettre à jour une listbox
    Par Rozark dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 26/01/2009, 11h28
  3. Mettre à jour une base sous SQL SERVER 2000
    Par FilipeVV dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 11/02/2005, 12h24
  4. Comment mettre à jour une ligne sans doublon via déclencheur
    Par fuelcontact dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/08/2004, 15h56
  5. Mettre à jour une table depuis une autre
    Par rsc dans le forum SQL
    Réponses: 4
    Dernier message: 09/07/2004, 10h08

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo