Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 15
  1. #1
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126

    [c#] Padright.. come ottenere una colonna dritta..

    ciao, immaginate che ho un testo fatto da un massimo di 10 caratteri ed un'altro testo fatto da un massimo di 5..
    quando vado a scrivere questo testo (su un printdocument ad esempio) scrivo il primo testo e poi di fianco il secondo testo.. vorrei che il secondo testo venisse scritto sempre alla stessa distanza della destra del primo in modo che quando vado a scrivere tot righe, anche se il primo testo fosse lungo solo 3 caratteri, il secondo venisse scritto sempre come se il primo avesse dieci caratteri.. quindi il secondo testo sarebbe allineato con tutte le righe.. ho provato a dare un padright(10) al primo testo in mdodo da avere degli spazi alla fine del primo testo.. ma purtroppo non mi funziona.. perchè padright sembra dare tot spazi in base al numero di caratteri presenti nel testo.. cioè se ad esempio il testo è composto da 3 caratteri, gli spazi saranno 7 e cioè quelli giusti per arrivare a 10.. e questo non và bene
    spero di essere stato chiaro

  2. #2
    Ma scusa, perché non va bene? Non è esattamente quello che stai chiedendo? :master: Ovviamente però non può funzionare se usi caratteri a spaziatura variabile...
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da MItaly
    Ma scusa, perché non va bene? Non è esattamente quello che stai chiedendo? :master: Ovviamente però non può funzionare se usi caratteri a spaziatura variabile...
    i caratteri sono tutti uguali.. non riesco a spiegarmi però perchè se alcune righe hanno nel primo testo meno di dieci caratteri, il secondo testo della seconda riga lo vedo + vicino al primo testo rispetto al secondo testo della prima riga (dove ad es. i caratteri del primo testo sono 10).. è come se l'aggiunta degli spazi non rispettasse le distanze che si verrebbero a formare se invece degli spazi ci fossere i caratteri..

  4. #4
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    ti invio una immagine dell'output che ottengo per rendere meglio l'idea

    guarda la pseudo terza colonna.. la seconda colonna, la descrizione, è fatta di 35 caratteri massimi, io gli ho messo un padRight(40), per distanziare la seconda con la terza colonna.. alcune righe hanno nella seconda colonna meno di 35 caratteri.. e pur arrivando a 40 con il padright, la terza colonna non viene allineata..
    mi sà che sbaglio qualcosa.. ma non riesco a capire cosa .. UFF

  5. #5
    "font a spaziatura variabile" è un termine tecnico per indicare quei font che hanno la larghezza dei vari caratteri (spazi inclusi) che varia; ad esempio il font di questo messaggio è a spaziatura variabile, perché come puoi vedere le lettere hanno larghezza diversa:

    aaaaaaaaaa
    mmmmmmmmmm
    iiiiiiiiii
    __________

    in ogni riga ci sono 10 caratteri, e, come si può vedere, sono tutti larghi diversi
    "font a spaziatura fissa", invece, indica un font in cui la larghezza dei caratteri è sempre la stessa; l'esempio più comune è il courier:
    codice:
    aaaaaaaaaa
    mmmmmmmmmm
    iiiiiiiiii
    __________
    come puoi vedere nel testo qui sopra tutti i caratteri sono larghi uguali.
    Tutto questo per dire che se nella tua stampa usi dei caratteri a spaziatura variabile non riuscirai mai ad allineare nulla con gli spazi; metti come font Courier New e vedrai che le tue colonne saranno ben allineate.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    come volevasi dimostrare.. che dire.. grazie mille
    ma ci sono altri tipi di font (magari installati di default sul sistema operativo (linux, windows, mac os)) che sono font a spaziatura fissa?

  7. #7
    Mah, Courier è certamente il più diffuso, poi ce ne sono anche altri anche se non so se siano così multipiattaforma...
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da MItaly
    Mah, Courier è certamente il più diffuso, poi ce ne sono anche altri anche se non so se siano così multipiattaforma...
    vabbè uso il courier new, dovrei trovarlo ouvnque..
    senti.. visto che sei stato così gentile, ti rompo un altro pò.. senza che apro un nuovo thread
    vedi quella immagine che ho postato prima? vedi quel numero: "61212" questa è una data.. stà ad indicare: Anno/mese/giorno .. non è che mi puoi suggerire come convertirla in un formato un pò + leggibile tipo gg/mm/aaaa ?

  9. #9
    Non mi pare così difficile... ma questa sera sono buono
    codice:
    'supponendo che la stringa si chiami "sData"
    sData = sData.PadLeft(6);
    sData = sData.Substring(4,2) + "/" + sData.Substring(2,2) + "/20" + sData.Substring(0,2);
    E ora, ripetiamo insieme:
    1 domanda = 1 discussione
    2 domande = 2 discussioni
    ...
    n domande = n discussioni
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it L'avatar di dops
    Registrato dal
    Jul 2000
    Messaggi
    4,126
    Originariamente inviato da MItaly
    Non mi pare così difficile... ma questa sera sono buono
    codice:
    'supponendo che la stringa si chiami "sData"
    sData = sData.PadLeft(6);
    sData = sData.Substring(4,2) + "/" + sData.Substring(2,2) + "/20" + sData.Substring(0,2);
    E ora, ripetiamo insieme:
    1 domanda = 1 discussione
    2 domande = 2 discussioni
    ...
    n domande = n discussioni
    utilizzando substring si.. ci avrei provato anch'io pensaavo che utilizzassi un formattatore
    cmq, grazie ovviamente, ma quel /20 non è sbagliato visto che purtroppo l'anno me lo rappresenta con un solo numero (il primo) e non chiedermi il perchè

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.