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

Shell et commandes GNU Discussion :

[Debian 11] Tentative de transformation d'une grande chaine de caractères en tableau multi-lignes


Sujet :

Shell et commandes GNU

  1. #21
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 320
    Points : 12 878
    Points
    12 878
    Par défaut
    pour avoir le tab (\t), tu passes par un CTRL+V puis tab

  2. #22
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 048
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 048
    Points : 14 480
    Points
    14 480
    Par défaut
    Vu, merci !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    XX="a   b       c       d" # avec ctrl v puis TAB entre a et b puis pareil entre b et c puis pareil entre c et d : ça roule !
    echo "$XX"
    a	b	c	d
    echo $XX
    a b c d
    Et bon dimanche aprème,

  3. #23
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 048
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 048
    Points : 14 480
    Points
    14 480
    Par défaut
    Bonsoir,

    une petite image juste pour vous montrer ce que je vis au quotidien depuis au moins, oh..., 30 ans ?
    (oui, la typographie m'a pris dans ses bras vers 1994 et ne m'a plus lâché).

    Nom : broken_font.jpg
Affichages : 59
Taille : 62,1 Ko

    Bref, vous le voyez le trou au milieu ? 3 champs non remplis ! Et ça me fait ça pour 17 fontes (sur 935).

    L'idée est donc, lors du remplissage de cette liste, que si un champ est vide alors j'utilise l'autre outil, celui qui m'a fait misérer avec les quotes, pour récupérer la(es) valeur(s) manquante(s) (ou je l'utiliserai directement, faut que je revois mes notes, que je retrouve mes marques).

    Le gag c'est que dans ma liste de fontes mal fichues, il y en a quand même 5 qui viennent de chez KroSoft, hé ouais : même les cadors se prennent des gamelles...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Problème avec
    /usr/share/fonts/AutresFontes/Machine/Linedraw.ttf
    /usr/share/fonts/AutresFontes/Ornements/webdings.ttf
    /usr/share/fonts/AutresFontes/Ornements/wingding.ttf
    /usr/share/fonts/AutresFontes/Ornements/WINGDNG2.TTF
    /usr/share/fonts/AutresFontes/Ornements/WINGDNG3.TTF
    Par contre aucun problème avec Arial, même avec la toute dernière version, ArialNova de 2019.
    C'est comme ça, c'est le bronx...

    EDIT : ah, j'allais oublier, un peu de code, le cœur de l'outil de listage :
    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
    var
      i: Integer;
      slError: TStringList;
    begin
      slError:= TStringList.Create;
      with CacheList do  // created in FormActivate
    //for i:= 0 to 2 do begin // fast test
      for i:= 0 to Count-1 do begin // full job
        try
          CacheItem := TFPFontCacheItem.Create(Items[i].FileName);
          if CacheItem <> nil then begin
            with CacheItem.FontData do begin
              MemoVisu.Lines.Add('FileName          '+ FileName);
              MemoVisu.Lines.Add('FamilyName        '+ FamilyName);
              MemoVisu.Lines.Add('HumanFriendlyName '+ HumanFriendlyName);
              MemoVisu.Lines.Add('PostScriptName    '+ PostScriptName);
              if (FamilyName='') or (HumanFriendlyName='') or (PostScriptName='')
                then slError.Add(FileName);
            end;
            CacheItem.Free;
          end;
        except
          on E: Exception do
            ShowMessage(Format('Error with font, index [%d]:'+sLineBreak+'%s'+sLineBreak+'%s',
              [i, ExtractFileName(Items[i].FileName), E.Message]));
        end;
    Ça s'appuie donc sur du FreePascal animé par Lazarus.

    Allez, je vous ai assez embêté avec tout ça, bonne semaine.

  4. #24
    Expert confirmé Avatar de papajoker
    Homme Profil pro
    Développeur Web
    Inscrit en
    Septembre 2013
    Messages
    2 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nièvre (Bourgogne)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2013
    Messages : 2 245
    Points : 4 742
    Points
    4 742
    Par défaut
    plus de 1000 ttf sur ma machine (merci noto )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     pacman -Qql | grep 'ttf$' | wc -l
    1009
    1009 infos ...
    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    fc-scan -b $(pacman -Qql | grep 'ttf$' )
     
    Pattern has 26 elts (size 32)
            family: "Noto Emoji"(s) "Noto Emoji SemiBold"(s)
            familylang: "en"(s) "en"(s)
            style: "SemiBold"(s) "Regular"(s)
            stylelang: "en"(s) "en"(s)
            fullname: "Noto Emoji"(s) "Noto Emoji SemiBold"(s)
            fullnamelang: "en"(s) "en"(s)
            slant: 0(i)(s)
            weight: 180(f)(s)
            width: 100(f)(s)
            foundry: "GOOG"(s)
            file: "/usr/share/fonts/TTF/NotoEmoji-SemiBold.ttf"(s)
            index: 0(i)(s)
            outline: True(s)
            scalable: True(s)
            fontversion: 131138(i)(s)
            capability: "otlayout:DFLT"(s)
            fontformat: "TrueType"(s)
            decorative: False(s)
            postscriptname: "NotoEmoji-SemiBold"(s)
            color: False(s)
            symbol: False(s)
            variable: False(s)
            fonthashint: False(s)
            order: 0(i)(s)
            namedinstance: False(s)
            fontwrapper: "SFNT"(s)
     
    Pattern has 25 elts (size 32)
            family: "FreeSans"(s)
            familylang: "en"(s)
            style: "Medium"(s) "渀愀瘀愀搀渀漀"(s)
            stylelang: "en"(s) "sl"(s)
            fullname: "Free Sans"(s)
            fullnamelang: "en"(s)
            slant: 0(i)(s)
            weight: 80(f)(s)
            width: 100(f)(s)
            foundry: "PfEd"(s)
            file: "/usr/share/vlc/skins2/fonts/FreeSans.ttf"(s)
            index: 0(i)(s)
            outline: True(s)
            scalable: True(s)
            fontversion: 79953(i)(s)
            fontformat: "TrueType"(s)
            decorative: False(s)
            postscriptname: "FreeSans"(s)
            color: False(s)
            symbol: False(s)
            variable: False(s)
            fonthashint: False(s)
            order: 0(i)(s)
            namedinstance: False(s)
            fontwrapper: "SFNT"(s)
     
    Pattern has 25 elts (size 32)
            family: "FreeSans"(s)
            familylang: "en"(s)
            style: "Bold"(s) "polkrepko"(s)
            stylelang: "en"(s) "sl"(s)
            fullname: "Free Sans Bold"(s)
            fullnamelang: "en"(s)
            slant: 0(i)(s)
            weight: 200(f)(s)
            width: 100(f)(s)
            foundry: "PfEd"(s)
            file: "/usr/share/vlc/skins2/fonts/FreeSansBold.ttf"(s)
            index: 0(i)(s)
            outline: True(s)
            scalable: True(s)
            fontversion: 117964(i)(s)
            fontformat: "TrueType"(s)
            decorative: False(s)
            postscriptname: "FreeSansBold"(s)
            color: False(s)
            symbol: False(s)
            variable: False(s)
            fonthashint: False(s)
            order: 0(i)(s)
            namedinstance: False(s)
            fontwrapper: "SFNT"(s)
    ...
    EDIT moins dépendant de l'os
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fc-scan -b $(find "/usr/share/fonts/" -iname "*.ttf")     # | awk '/postscriptname/ {print $2}' | sort

  5. #25
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 048
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 048
    Points : 14 480
    Points
    14 480
    Par défaut
    Citation Envoyé par papajoker Voir le message
    plus de 1000 ttf sur ma machine (merci noto )
    L'enfer, quand il faut en trouver une...
    Et c'est bien pour ça que très vite (début 2000) j'ai commencé à tout trier dans une douzaine de dossiers précis (sérif, sans-sérif, fantaisie, machine, etc.) et avant de jouer avec l'ascenseur du traitement de texte, j'étudie mon classeur papier où elles sont (presque) toutes répertoriées.

    Tellement plus agréable pour comparer et choisir, on peut mettre plusieurs pages papier côte à côte, que du bonheur, et quelle efficacité !
    Et rapidité aussi.

    Citation Envoyé par papajoker Voir le message
    EDIT moins dépendant de l'os
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fc-scan -b $(find "/usr/share/fonts/" -iname "*.ttf")     # | awk '/postscriptname/ {print $2}' | sort
    Merci, car pacman je ne connais pas.

    Et du coup j'ai joué comme toi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    fc-scan -b $(find "/usr/share/fonts/" -iname "*.ttf") | grep 'Pattern' | wc -l # famille DéjaVu, celles qui font fonctionner le système
    22
    fc-scan -b $(find "/usr/share/fonts/AutresFontes/" -iname "*.ttf") | grep 'Pattern' | wc -l # toutes les autres
    833
    fc-scan -b $(find "/usr/share/fonts/AutresFontes/" -iname "*.otf") | grep 'Pattern' | wc -l # à trier...
    53
    Ce qui est curieux, c'est que 22 + 833 + 53 = 908, alors qu'un autre outil m'en donne 935. Si j'enlève les 17 en erreur, il m'en resterait 918.
    Une erreur de 10 quelque part...

    Ah, je n'ai pas testé ton ajout awk, je le découvre après avoir posté ma réponse.
    Je vais regarder ça.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Crystal] transformation d'une date en numéro de semaine
    Par barna dans le forum SAP Crystal Reports
    Réponses: 4
    Dernier message: 24/03/2017, 10h41
  2. [RegEx] Extraire un nombre d'une grande chaine de caractères
    Par casier dans le forum Langage
    Réponses: 1
    Dernier message: 27/07/2011, 16h35
  3. Réponses: 1
    Dernier message: 26/02/2009, 19h13
  4. Découpage d'une grande image vers des textures
    Par djar dans le forum OpenGL
    Réponses: 14
    Dernier message: 26/02/2005, 19h46
  5. [C#] [ADO] Parcours d'une grande quantité d'enregistrements
    Par Wavyx dans le forum Windows Forms
    Réponses: 4
    Dernier message: 21/09/2004, 10h16

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