zczytywanie z pliku i generowanie liczb

0

witam
jestem poczatkujacy, lecz pisze tego posta tutaj bo na newbie nie znalazlem pomocy:
chce napisac program, ktory wczyta z pliku dwie stringa i liczby znajdujace sie w jednej linijce oddzielone od siebie srednikiem, linijek jest kilka, oto przyklad:

A;34
B;56
C;12
d;42

chcialbym teraz tymi znakami zapelnic dwa ComboBox'y, tak, zeby w pierwszym byly do wyboru tylko litery (a,b,c,d) a w drugim zeby generowal tyle liczb ile jest po sredniku kazdej z wybranych literek. Zrobilem to dla pojedynczych znakow i wyglada to mniej wiecej tak:

procedure TForm1.ZapiszClick(Sender: TObject);
var nap:string;
begin

us.im:=imie.Text;
us.naz:=nazwisko.Text;
{FontName.Items[FontName.ItemIndex];}
us.klasa:=klasa.Items[klasa.itemindex];
(Nr.Items[nr.itemindex]);
end;

procedure TForm1.start(Sender: TObject);
var
i:byte;
linia:string;
kl: TEXTFILE;
begin
assignfile(kl,plikKlas);
reset (kl);
while not eof(kl) do
begin
readln(kl,linia);
klasa.AddItem(linia,klasa);
end;

tylko wtedy zapelnia jeden combobox, a mi chodzi zeby zczytal i wygenerowal tyle liczb, ile ich jest po sredniku
poniwaz jestem bardzo zielony wiec prosze o wyrozumialosc i cierpliwosc jezeli czegos bym nie zrozumial

0

Z tego co zrozumiałem z twojej zakręconej wypowiedzi, to przyda ci się Pos, Copy (Delete), StrToInt.

0

Przypuszczalnie nie zgadłem w 100% o co ci chodzi, ale może to ci pomoże:

procedure TForm1.Button1Click(Sender: TObject);
var
  F : TextFile;
  S, Tmp : String;
  I : Integer;
begin
  Randomize;
  AssignFile(F, 'C:test.txt');
  Reset(F);
  while not Eof(F) do
  begin
    Readln(F, S);
    Tmp := '';
    ComboBox1.Items.Add(S[1]);
    for I := 0 to StrToInt(Copy(S, 3, Length(S) - 2)) - 1 do
      Tmp := Tmp + IntToStr(Random(10)) + ' ';
    ComboBox2.Items.Add(Tmp);
  end;
  CloseFile(F);
end;
0

witam i dziekuje za pomoc, jestes blisko rozwizania mojeo problemu ae o jeszcze nie to, np: jezeli w pliku mam:

a;1
b;2
c;3
d;4
e;5
f;34

to bez wzgledu jaka litere wybiore w comboxie mam od wyboru takie cos:

0
10
011
0010
10011
11110

P.S. w wierszu:
Tmp := Tmp + IntToStr(Random(10)) + ' ';
zmienilem 10 na 2 i teraz jest tak:
Tmp := Tmp + IntToStr(Random(2)) + ' ';

bo przy 10 mialem jeszcze jakies inne dziwne liczby i na pewno nie byly to te ktore znajduja sie po sredniku...

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