![]() |
Re: Bereinigen des Records, bis jetzt noch ungelöst "!&
Hi,
nachdem datensatz.zeichen ein char ist kann man nicht '' zuweisen, sondern nur ein char ;) versuchs entweder mitt fillchar (s.o.) oder nimm statt '' #0 |
Re: Bereinigen des Records, bis jetzt noch ungelöst "!&
dann mach statt
datensatz[i].zeichen := ''; einfach datensatz[i].zeichen := #0; EDIT: war mal wieder einer schneller :mrgreen: |
Re: Bereinigen des Records, bis jetzt noch ungelöst "!&
okey vielen dank es funktioniert jetzt perfekt, wobei mir noch nicht ganz klar ist wieso er nach
der umänderung zu #0 den char komplett übersieht, wo doch in anzahl und haefig noch zahlen enthalten sind vielen vielen dank B1 |
Re: Bereinigen des Records, bis jetzt noch ungelöst "!&
Hi,
Zitat:
Delphi-Quellcode:
dein Flag auf 0. Es wird später nur dann auf 1 gestezt, wenn in datensatz.zeichen der aktuelle Buchstabe gefunden wurde:
d:=0;
Delphi-Quellcode:
und dann prüfst du dein Flag auf 0, also ob der aktuelle Buchstabe NICHT gefunden wurde. Nur dann initialisierst du die restlichen Datensatz-Felder mit den passenden Werten:
if b=datensatz[e].zeichen then
begin datensatz[e].anzahl:=datensatz[e].anzahl+1; c:=0; d:=1; // d gibt an ob der buchstabe schon zugeordnet wurde end else begin c:=c-1; //c geht alle buchstaben durch e:=e-1; // e ist hier der zähler um alle datensätze abzuklappern end; end;
Delphi-Quellcode:
Habe ich dein Programm richtig verstanden :)
if d=0 then
begin zahl:=zahl+1; datensatz[zahl].zeichen:=b; datensatz[zahl].anzahl:=1 end; |
Re: Bereinigen des Records
mal meine lösung...
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var i:integer; anz:integer; atext:string; zeichen:char; begin atext:=edit1.Text; if atext='' then exit; ValueListEditor1.Strings.Clear; for i:=1 to length(atext) do begin zeichen:=atext[i]; if ValueListEditor1.Values[zeichen]='' then begin anz:=1 end else begin anz:=strtoint(ValueListEditor1.Values[zeichen]); inc(anz); end; ValueListEditor1.Values[zeichen]:=inttostr(anz); end; end; als tipp: wenn es nur die buchstaben sein sollen, dann reicht ja auch ein array mit 26 elementen (a..z) schau dir dazu mal die funktionen chr und ord an, damit kannst du einiges vereinfachen... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz