itérer le placement d'une virgule
Répondre à la discussion
Affichage des résultats 1 à 11 sur 11

itérer le placement d'une virgule



  1. #1
    invite30fe8374

    itérer le placement d'une virgule


    ------

    Bonjour,
    Dans l'objectif d'effectuer un copier-coller du tableur d'openoffice vers mathématica et obtenir des nombres séparés par une virgule et donc une jolie liste, j'aimerais trouver un moyen de placer une virgule à la fin de chacune des cellules de ma colonne dans laquelle sont placées mes données (3000 lignes).

    Je voudrais savoir comment réaliser cette itération.
    Merci de votre aide

    -----

  2. #2
    JPL
    Responsable des forums

    Re : itérer le placement d'une virgule

    Enregistrer sous... Texte CSV. Si tu n'as qu'une seule colonne cela te donnera un format texte avec une valeur par ligne. Ensuite avec OpenOffice Writer tu remplaces les retours à la ligne par des virgules.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  3. #3
    SuperTux

    Re : itérer le placement d'une virgule

    Le mieux : une macro. Avec OOo tu peux les faire en vb script ou javascript.

  4. #4
    JPL
    Responsable des forums

    Re : itérer le placement d'une virgule

    C'est gentil comme conseil, mais cela aurait été plus utile si tu avais donné le code de la macro ! Ma solution n'est pas géniale, mais elle marche. La tienne est peut-être plus élégante, mais on aimerait la voir
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  5. A voir en vidéo sur Futura
  6. #5
    SuperTux

    Re : itérer le placement d'une virgule

    C'est gentil comme conseil, mais cela aurait été plus utile si tu avais donné le code de la macro ! Ma solution n'est pas géniale, mais elle marche. La tienne est peut-être plus élégante, mais on aimerait la voir
    RTFM ou sinon : Cap Gemini, Atos Origin ect...
    Passer une demi heure à faire ça à la main sur 3000 lignes sans compter les risques d'erreurs, mouais...

    Aller je suis bon samaritain aujourd'hui :

    Code:
    REM  Concaténation avec virgule
    REM  By SuperTux (2008)
    
    Sub Main
    
    Dim id_fichier As Integer
    Dim i As Integer
    Dim feuille As Object
    Dim min As Integer
    Dim max As Integer
    Dim colonne As Integer
    Dim resultat As String
    
    id_fichier = FreeFile
    Open "/tmp/sortie.txt" For Output As #id_fichier
    feuille = ThisComponent.Sheets.getByName("Feuille1")
    min = 0
    max = 9
    colonne = 0
    
    For i = min To max
      resultat = resultat + feuille.getCellByPosition(colonne, i).getValue()
      
      If i < max Then
        resultat = resultat + ","
      EndIf
    Next i
    
    Print #id_fichier, resultat
    Close #id_fichier
    
    End Sub

    Régler min, max, colonne, et le nom de la feuille suivant le besoin.

    Résultat (avec 10 cellules contenant les nombres de 1 à 10) :

    Code:
    $ cat /tmp/sortie.txt 
    1,2,3,4,5,6,7,8,9,10

  7. #6
    invite30fe8374

    Re : itérer le placement d'une virgule

    j'ai enfin réussi à faire ce que je voulais :
    dans open calc, j'ai multiplié par 10^7 (nombre de décimales maximum de ma liste) puis j'ai ajouté une décimale pour avoir ",0"
    Ensuite, dans mon programme mathematica, j'ai divisé tous les nombres de ma liste par 10^7 et voilà

    Merci à vous tous pour vos conseils. (j'avais également pensé aux macros)

  8. #7
    JPL
    Responsable des forums

    Re : itérer le placement d'une virgule

    Citation Envoyé par SuperTux Voir le message
    Passer une demi heure à faire ça à la main sur 3000 lignes sans compter les risques d'erreurs, mouais...
    Tu es de mauvaise foi ou tu me prends pour un imbécile Mon truc marche sans aucune manip à la main : un remplacement automatique de tous les retours à la ligne par une virgule.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  9. #8
    SuperTux

    Re : itérer le placement d'une virgule

    Tu es de mauvaise foi ou tu me prends pour un imbécile Mon truc marche sans aucune manip à la main : un remplacement automatique de tous les retours à la ligne par une virgule.
    Ah ok, j'avais pas compris ca comme cela Mea culpa.

    Effectivement, je vient de regarder, OOo supporte les expressions régulières, mais je ne suis pas arrivé à lui faire reconnaitre les retours charriots

  10. #9
    JPL
    Responsable des forums

    Re : itérer le placement d'une virgule

    Mea culpa à mon tour : je viens de découvrir que OOo ne peut rechercher que les retours à la ligne obtenus avec Maj+Entrée et non les nouveaux paragraphes. C'est nul ! Bref globalement c'est très en retrait par rapport à Word.

    Je propose donc l'astuce suivante. Ouvrir le fichier texte avec l'excellent Notepad+. Faire Ctrl+R qui ouvrira un mode de recherche avancé. Placer le curseur dans le champ de recherche et faire Ctrl+M qui définira le caractère de retour à la ligne (pourquoi ce code... je n'en sais rien). Placer la virgule dans le champ de remplacement, cliquer sur Find puis sur Replace rest.
    Dernière modification par JPL ; 03/06/2008 à 00h21.
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

  11. #10
    SuperTux

    Re : itérer le placement d'une virgule

    Eureka, j'ai trouvé !

    http://wiki.services.openoffice.org/...FAQ/Writer/054

    Edition -> rechercher et remplacer.
    Cliquer sur "autres options" et cocher "expressions régulières".
    Dans le champs "rechercher" mettre "$" et dans le champs "remplacer par" mettre ",".
    Cliquer sur "remplacer tous".

  12. #11
    JPL
    Responsable des forums

    Re : itérer le placement d'une virgule

    Merci
    Rien ne sert de penser, il faut réfléchir avant - Pierre Dac

Discussions similaires

  1. iterer la deformée
    Par ABN84 dans le forum Mathématiques du supérieur
    Réponses: 4
    Dernier message: 25/08/2007, 11h40
  2. Calcul en virgule fixe/flottante
    Par invitefbd123a4 dans le forum Logiciel - Software - Open Source
    Réponses: 1
    Dernier message: 17/02/2007, 15h15
  3. logciel : convertir un nombre à virgule (autre base)
    Par acx01b dans le forum Mathématiques du supérieur
    Réponses: 9
    Dernier message: 02/03/2006, 19h50
  4. Comment calculer en assembleur avec des chiffres à virgule ?
    Par invite9e020ebb dans le forum Électronique
    Réponses: 8
    Dernier message: 11/08/2005, 15h46
  5. placement publicitaire ?
    Par invite494ba9ff dans le forum À la conquête de Mars
    Réponses: 3
    Dernier message: 21/02/2004, 18h45
Découvrez nos comparatifs produits sur l'informatique et les technologies.