Chaine longueur fixe [Résolu]

Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- - Dernière réponse : sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
- 26 déc. 2012 à 09:08
Bonjour,

A tout hasard, existe-t'il une fonction toute faite qui formate un texte sur x caractères ?
Exemple : si je veux afficher sur 3 caractères dans une liste box, les trois nombres suivants 1, 25 et 330 en leur ajoutant des espaces devant ?
(j'ai fait une fonction maison, mais ne perdons pas une occasion de s'instruire...)

Simon
Afficher la suite 

Votre réponse

20/22 réponses

Meilleure réponse
Messages postés
1015
Date d'inscription
samedi 25 octobre 2003
Dernière intervention
29 août 2013
3
Merci
la fonction format doit le permettre. Il me semble que Format('%.3d', [25]) doit t'afficher '025'

Merci Guillemouze 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Guillemouze
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
3
Merci
Si, si. Format() te permet de faire ça pour des chaînes.

Et, pour info, il y a aussi FormatFloat() pour les nombres (accepte aussi les entiers).

Merci Caribensila 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de Caribensila
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
3
Merci
Salut,

oui, avec Format, les spécificateurs width et prec sont utilisables, même si le résultat est surprenant avec les chaînes de caractères.

Voici un petit code de démonstration (j'avais un peu de temps à tuer).
Il suffit de placer un Memo et 2 Buttons sur une fiche et de remplir les évènements OnCreate et OnClick sans oublier la procedure GenerateDummyStrings.
Pas besoin de se fatiguer pour la disposition, tout se met en place dans OnCreate (j'avais du temps à tuer, je vous dis...).

{ génération d'une liste de chaînes dont la longueur varie aléatoirement de 1 à Length }
procedure GenerateDummyStrings(const Count: Integer; Strings: TStrings);
const
  Length = 9;
var
  i, j: Integer;
  L: Integer;
  Tmp: string;
begin
  Strings.Clear;
  for i := 1 to Count do
  begin
    L := Random(Length) + 1;
    Tmp := '';
    for j := 1 to L do
    begin
      Tmp := Tmp + (Char(Random(26) + 97));
    end;
    Strings.Add(Tmp);
  end;
end;

{ les chaînes seront alignées à droite, comme des chiffres }
procedure TForm1.Button1Click(Sender: TObject);
var
  List: TStringList;
  i: Integer;
begin
  List := TStringList.Create;
  try
    { génération d'une liste de 100 chaînes }
    GenerateDummyStrings(100, List);
    for i := 0 to List.Count - 1 do
    begin
      List[i] := Format('%20.13s', [List[i]]);
    end;
    Memo1.Lines.Assign(List);
  finally
    List.Free;
  end;
end;

{ les chaînes seront alignées à gauche, c'est plus habituel }
procedure TForm1.Button2Click(Sender: TObject);
var
  List: TStringList;
  i: Integer;
  Inter, W: Integer;
const
  Interval = 20;
begin
  List := TStringList.Create;
  try
    { génération d'une liste de 100 chaînes }
    GenerateDummyStrings(100, List);
    for i := 0 to List.Count - 1 do
    begin
      W := Length(List[i]);
      Inter := Interval + W;
      List[i] := Format('%*.*s', [Inter, W, List[i]]);
    end;
    Memo1.Lines.Assign(List);
  finally
    List.Free;
  end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
  Width := 533;
  Height := 523;
  with Memo1 do
  begin
    Left := 0;
    Top := 0;
    Width := 385;
    Height := 481;
    Align := alLeft;
    ScrollBars := ssVertical;
    Font.Name := 'Courier New';
    Font.Size := 10;
    Clear;
  end;
  with Button1 do
  begin
    Left := 420;
    Top := 184;
  end;
  with Button2 do
  begin
    Left := 420;
    Top := 228;
  end;
  Randomize;
end;


Avec Delphi, tout devient possible

JP

Merci korgis 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 101 internautes ce mois-ci

Commenter la réponse de korgis
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
ok, merci. J'ai bien jeté un oeil au tuto de f0xi sur l'instruction format, mais je ne pensais pas que le ".3" pouvait s'appliquer à des chaines. Je teste ça.


Simon
Commenter la réponse de sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Ok, merci aussi Cari !

Simon
Commenter la réponse de sp40
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Pas mal !
Merci pour l'idée

Simon
Commenter la réponse de sp40
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
0
Merci
« Pas besoin de se fatiguer pour la disposition... »


Ouais...
Mais 'faut quand même Copier/coller.
Commenter la réponse de Caribensila
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci
Ouais...
Mais 'faut quand même Copier/coller


No problem...
Commenter la réponse de korgis
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Excellent !!!
Comment tu fais ça ?


Simon
Commenter la réponse de sp40
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci
Excellent !!!
Comment tu fais ça ?


Heu... comment je fais quoi ?
Incorporer une image dans le post, tu veux dire ?
Ça le fait, hein ?
Une solution simple est d'uploader l'image sur un serveur dédié, ImageShack par exemple.
C'est gratuit.
Puis tu utilises les outils de mise en page fournis ici dans la barre au-dessus du post pour entrer l'adresse de l'image (adresse fournie par l'hébergeur).
That's all...
Commenter la réponse de korgis
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Ok, ça peut être utile pour des copies d'écran aussi...
Merci pour le truc

Simon
Commenter la réponse de sp40
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
0
Merci
Nous, c'est surtout pour les conneries qu'on trouve ça utile...
Commenter la réponse de Caribensila
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
J'avais bien compris Cari !
;)

Simon
Commenter la réponse de sp40
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci
Moi j'ai rien compris.

Bostik c'est pourtant une marque sérieuse...
Commenter la réponse de korgis
Messages postés
1293
Date d'inscription
mardi 28 octobre 2003
Statut
Contributeur
Dernière intervention
3 juillet 2015
0
Merci
Simon
Commenter la réponse de sp40
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
0
Merci


«Une solution simple est d'uploader l'image sur un serveur dédié, ImageShack par exemple»


Pour une photo trouvée sur le Net, on peut aussi le faire directement, sans UpLoader :

1) Clic droit sur la photo.
2) Choisir "Propriétés'.
3) Copier l'URL
4) Coller l'URL de l'image dans l'outil de mise en page du post.
5) Héhéhé !
Commenter la réponse de Caribensila
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci
Pour une photo trouvée sur le Net, on peut aussi le faire directement, sans UpLoader


Oui, ça s'appelle le hotlink
C'est plutôt à éviter, quoi.

Moi, ce que j'en dis...
Commenter la réponse de korgis
Messages postés
2684
Date d'inscription
jeudi 15 janvier 2004
Dernière intervention
26 juillet 2018
0
Merci
J'ai appris un truc, là.

Mais ce que je ne comprends pas c'est qu'il n'y aurait plus de problème en passant par un site dédié comme tu le décris, korgis...
Commenter la réponse de Caribensila
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci


Mais ce que je ne comprends pas c'est qu'il n'y aurait plus de problème en passant par un site dédié comme tu le décris, korgis...


Ben justement, c'est que le site est dédié.
C'est étudié pour, quoi...
Je crois savoir qu'ImageShack est le premier à avoir proposé ce service, depuis plusieurs années.
Sans entrer dans le détail du modèle économique, ça semble fonctionner ainsi :
- le service de base est gratuit mais limité,
- si on veut des prestations supplémentaires, c'est payant, diverses formule étant proposées (au mois, à l'année, sauvegardes et autres options "pro" à voir sur le site).
Après, il existe des prestations personnalisées pour les entreprises, certainement aussi des revenus publicitaires etc...
Je n'en sais guère plus.
Commenter la réponse de korgis
Messages postés
423
Date d'inscription
samedi 17 mai 2003
Dernière intervention
4 août 2018
0
Merci
Commenter la réponse de korgis

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.