Określona długość stringa

0

Witam,
Mam taki problem: w jaki sposób otrzymać określoną (wcześniej) ilość znaków w stringu, tak aby wpisując np. imię składające się z 7 znaków, natomiast program uzupełnia tego stringa znakami "-" do zadeklarowanej wcześniej długości?
Za pomoc dzięki.

0

kiedyś pisałem funkcyjkę, która taki bajer robiła...

function chtoe(s: string;ch: char; len: integer): string;
var tmpstr: string;
begin
 tmpstr:=s;
 if length(tmpstr>len) then tmpstr:=copy(tmpstr, 1, len); {usuń tę linijkę, jak nie chcesz, by funkcja obcinała stringa, jeśli jest dłuższy od podanej długości}
 while length(tmpstr)<len do tmpstr:=tmpsr+ch;
 chtoe:=tmpstr;
 end;

Pisane z pamięci, więc jak jakiś błędzik będzie, to popraw, chyba da się zrozumieć... Teraz użycie w twoim wypadku wygląda następująco:

mystring:=chtoe(mystring, '-', dlugosc);
0
var s:string;
const dlugosc=10;
const znak='*';
begin
  // ...
  while length(s)<dlugosc do s:=s+znak;
  // ...
end.

Najprosciej, a length() działa niezależnie od tego, czy jest to short-, ansi-, czy widestring.

// Chciałem być niemiły i odpowiedzieć: ' Wpisać w delphi
// string najechać kursorem i wcisnąć ctrl+f1'
// I następnym razem tek zrobię.
// KOLEJNOŚĆ SZUKANIA: HELP, KSIĄŻKI, FAQ, INET, FORUM-post.
// Jesli chodzi o podstawy zatrzymasz się najdalej na drugiej pozycji.

// Do poniższego postu Rafikusa:
// Chłopie, ctrl+f1 to podstawowa kombinacja
// klawiszy w każdym kompilatorze borlanda
// Sam często z tego korzystam, mimo że programuję
// od nastu lat.

0

Albo:

S := S + StringOfChar('-', 7-Length(S));

Dopełni do 7 znaków.

0

Dzięki za pomoc, a co do podstaw: to jak zwykle są one najtrudniejsze do opanowania...

a wg przysłowia, kto szuka wielbłądzi - ile odpowiedzi, tyle sposobów - po prostu skarbica - tego nie znajdziesz w żadnej książce

jeszcze raz dzięki

1 użytkowników online, w tym zalogowanych: 0, gości: 1