Einzelnen Beitrag anzeigen

Benutzerbild von Dyami
Dyami

Registriert seit: 24. Sep 2013
Ort: Schleswig-Holstein
25 Beiträge
 
Delphi 10.3 Rio
 
#1

Array durch Objectlist ersetzen

  Alt 4. Okt 2013, 08:14
Delphi-Version: XE2
Hallo,

ich stehe vor einem Problem. Ich habe die Aufgabe bekommen mein Array durch eine TObjectlist zu ersetzten. Nun habe ich mich ein bisschen damit beschäftigt und viel im Inet gelesen, aber ich habe immer noch keinen Plan was ich machen soll.

Delphi-Quellcode:
unit Woerter;

interface

uses

  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
  System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Contnrs;

type

  TWoerterZaehlen = class(TObjectlist)
    // Wort: String;
    // Anzahl: integer;

  protected
    Fwort: string;
    Fanzahl: integer;
  public type

    ArrofTWoerterZaehlen = array of TWoerterZaehlen;
  function HaeufigkeitDerWorte2(st_w1: tstringlist): ArrofTWoerterZaehlen;
  constructor create(Anz: integer; Wor: String); overload;
  constructor create(Wor: String); overload;
  property Wort: String read Fwort write Fwort;
  property Anzahl: integer read Fanzahl write Fanzahl;

  function toString(arrofsort: TWoerterZaehlen.ArrofTWoerterZaehlen): String;
  end;

implementation

function TWoerterZaehlen.HaeufigkeitDerWorte2(st_w1: tstringlist)
  : TWoerterZaehlen.ArrofTWoerterZaehlen;

var
  i: integer;
  a: integer;
  s_wort: string;
  b_iv: boolean;
  index: integer;
Begin

  setlength(result, 0);
  index := 0;
  for i := 0 to st_w1.count - 1 do
  begin
    b_iv := false;
    s_wort := AnsiLowerCase(st_w1[i]);
    for a := 0 to length(result) - 1 do
    begin
      if result[a].Fwort = s_wort then
      begin
        b_iv := true;
        index := a;
        break;
      end;
    end;
    if b_iv then
    begin
      result[index].Fanzahl := result[index].Fanzahl + 1;
    end
    else
    begin
      setlength(result, length(result) + 1);
      result[high(result)] := TWoerterZaehlen.create(s_wort);
    end;
  end;
end;
{ TWoerterZaehlen }

constructor TWoerterZaehlen.create(Anz: integer; Wor: string);
begin
  Anzahl := Anz;
  Wort := Wor;
end;

constructor TWoerterZaehlen.create(Wor: String);
begin
  Anzahl := 1;
  Wort := Wor;
end;

function TWoerterZaehlen.toString(arrofsort: ArrofTWoerterZaehlen): String;
begin
  result := '';

end;

end.
Wäre echt nett, wenn Ihr mir helfen könntet. Sitze an dieser Aufgabe nämlich nicht alleine fest :/

Gruß

Philipp
Philipp

Geändert von Dyami ( 4. Okt 2013 um 08:21 Uhr)
  Mit Zitat antworten Zitat