AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Bereinigen des Records
Thema durchsuchen
Ansicht
Themen-Optionen

Bereinigen des Records

Ein Thema von phobosx112 · begonnen am 20. Jan 2006 · letzter Beitrag vom 20. Jan 2006
Antwort Antwort
Seite 2 von 2     12   
inahurry
(Gast)

n/a Beiträge
 
#11

Re: Bereinigen des Records, bis jetzt noch ungelöst "!&

  Alt 20. Jan 2006, 11:36
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
  Mit Zitat antworten Zitat
dfried

Registriert seit: 16. Aug 2005
486 Beiträge
 
#12

Re: Bereinigen des Records, bis jetzt noch ungelöst "!&

  Alt 20. Jan 2006, 11:37
dann mach statt

datensatz[i].zeichen := '';

einfach

datensatz[i].zeichen := #0;

EDIT: war mal wieder einer schneller
  Mit Zitat antworten Zitat
phobosx112

Registriert seit: 20. Jan 2006
5 Beiträge
 
#13

Re: Bereinigen des Records, bis jetzt noch ungelöst "!&

  Alt 20. Jan 2006, 11:45
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
  Mit Zitat antworten Zitat
inahurry
(Gast)

n/a Beiträge
 
#14

Re: Bereinigen des Records, bis jetzt noch ungelöst "!&

  Alt 20. Jan 2006, 11:55
Hi,

Zitat:
...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
nun, zuerst setzt du mit

d:=0; dein Flag auf 0. Es wird später nur dann auf 1 gestezt, wenn in datensatz.zeichen der aktuelle Buchstabe gefunden wurde:

Delphi-Quellcode:
            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;
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:

Delphi-Quellcode:
      if d=0 then
         begin
         zahl:=zahl+1;
         datensatz[zahl].zeichen:=b;
         datensatz[zahl].anzahl:=1
         end;
Habe ich dein Programm richtig verstanden
  Mit Zitat antworten Zitat
Benutzerbild von ibp
ibp

Registriert seit: 31. Mär 2004
Ort: Frankfurt am Main
1.511 Beiträge
 
Delphi 7 Architect
 
#15

Re: Bereinigen des Records

  Alt 20. Jan 2006, 12:15
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...
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:36 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz