Einzelnen Beitrag anzeigen

Benutzerbild von jim_raynor
jim_raynor

Registriert seit: 17. Okt 2004
Ort: Berlin
1.251 Beiträge
 
Delphi 5 Standard
 
#8

Re: buchstaben in dynamischen array speichern

  Alt 3. Mai 2006, 17:26
Das last darfst du nur in der if-Bedingung setzen, sonst setzt du es auf einen niedrigeren Wert zurück und dein Array wird eventuell beim nächsten Durchlauf gekürzt.

Zudem knallt es böse, wenn der Eingabestring leer ist, deshalb empfehle ich dir folgendes:

Delphi-Quellcode:
procedure TForm1.Button4Click(Sender: TObject);
var i: integer;
    s1: string;
    myASCIIarray: array of integer;
    last:integer;
begin
  listbox1.clear;
  s1 := editEingabe.text;
  // Beim ersten Durchlauf wird das Array dann automatisch auf die größe des ersten Zeichens gesetzt
  // Ist der String leer, bleibt das Array auch leer und nichts passiert
  last := 0;
  for i := 1 to length(s1) do
  begin
    if last < ord(s1[i]) then
    begin
      setlength(myASCIIarray,ord(s1[i])+1);
      last := ord(s1[i]);
    end;
    inc(myASCIIarray[ord(s1[i])]);
  end;
  for i := 0 to high(myASCIIarray) do
    if myASCIIarray[i] > 0 then
      listbox1.Items.add(chr(i)+': '+ IntToStr(myASCIIarray[i]));
end;
Christian Reich
Schaut euch mein X-COM Remake X-Force: Fight For Destiny ( http://www.xforce-online.de ) an.
  Mit Zitat antworten Zitat