[Résolu][Calc] Données d'un fichier texte dans un DataArray

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
pascalissimo
Membre OOrganisé
Membre OOrganisé
Messages : 80
Inscription : 11 déc. 2007 17:44
Localisation : Lorraine - FRANCE

[Résolu][Calc] Données d'un fichier texte dans un DataArray

Message par pascalissimo »

Bonjour

J'ai un fichier texte (csv) contenant des données.
J'extrais de ce fichier, ligne par ligne, certaines données et je les "colle" dans une feuille à un certain endroit.
Puis je passe à la ligne suivante et ainsi de suite.
Je pensais donc utiliser un DataArray, mais ça coince.
Voilà un extrait de mon code :

Code : Tout sélectionner

sub pourForum(fichier)
     compteur_resp = 0
 	 monclasseur = ThisComponent  	 
 	 dim tabDonneesResp()
	 lafeuille_eleve=monclasseur.Sheets.getByName ("Import_Eleves")
	 
	 ' j'ouvre mon fichier de données
    open (fichier) for input as #2
     compteur_resp=0
     do While Not eof(2)
         line input #2,t
         compteur_resp=compteur_resp + 1
         'les données du fichier      
         v = Split(t, ";")
         if t="" then goto fin
         
         'je stocke dans un tableau pour dataArray
         ' ce sont ces données que je devrai coller dans la feuille de destination
         ' 
         tabDonneesResp=""
         for col=0 to ubound(v)
         	redim preserve tabDonneesResp(1,col+1)
         	tabDonneesResp(0,col)=v(col)
         next

     '.../...
     
       	'on détermine la plage vers laquelle les données seront envoyées
   		zoneResp=lafeuille_eleve.getcellRangeByPosition(NbColEl,rang-1,NbColEl+ubound(v)+1,rang-1)
   		zoneResp.dataArray=tabDonneesResp    '############### c'est là que ça coince : erreur

      loop    
      fin:
      close #2	
end sub
Voilà. Je pense que c'est un problème de formats de tableaux. Mais j'ai bien fait attention de créer un tableau à deux dimensions.

Merci pour vos lumières.
Et Joyeux Noël à tous!!!!
Dernière modification par pascalissimo le 25 déc. 2007 14:36, modifié 1 fois.
Windows Vista
OpenOffice.org 3.0.1
Avatar de l’utilisateur
cris59
Membre enthOOusiaste
Membre enthOOusiaste
Messages : 482
Inscription : 20 mars 2006 15:15
Localisation : Paris

Message par cris59 »

un DataArray est un tableau de tableaux


Code : Tout sélectionner

for col = 0 to ubound(v)
    redim preserve tabDonneesResp(col)
    tabDonneesResp(col) = v(col) 
next

'.../...
     
'on détermine la plage vers laquelle les données seront envoyées  
zoneResp=lafeuille_eleve.getcellRangeByPosition(NbColEl,rang-1,NbColEl+ubound(v),rang-1)      
zoneResp.setdataArray(Array(tabDonneesResp())) 

cris59
WinXP PRO SP2 avec OOo2.2 & Vista avec OOo2.3.1
& Debian avec OOo2.2
pascalissimo
Membre OOrganisé
Membre OOrganisé
Messages : 80
Inscription : 11 déc. 2007 17:44
Localisation : Lorraine - FRANCE

Message par pascalissimo »

Merci cris59

Subtile nuance.

Ca marche ! :D
Windows Vista
OpenOffice.org 3.0.1