AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

set of char wie array behandeln

Ein Thema von messie · begonnen am 21. Jun 2007 · letzter Beitrag vom 21. Jun 2007
Antwort Antwort
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#1

set of char wie array behandeln

  Alt 21. Jun 2007, 10:51
Ich muss einen Test auf Buchstabenkombinationen untersuchen. Es sind immer zwei Buchstaben von aa bis ZZ.
Kann ich ein array so bauen, daß ich von a to z oder von A to Z eine Schleife hinbekomme? Mit set(i) komme ich nicht weiter.

Danke, Messie
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: set of char wie array behandeln

  Alt 21. Jun 2007, 10:54
Set ist ja ne Menge, das ist was anderes wie ein Array.
Du kannst den Inhalt des Arrays, Eleemnet für Element mit dem Suchstring vergleichen.
Markus Kinzler
  Mit Zitat antworten Zitat
pszopp

Registriert seit: 7. Sep 2005
Ort: Alsdorf
95 Beiträge
 
Delphi 2010 Professional
 
#3

Re: set of char wie array behandeln

  Alt 21. Jun 2007, 11:02
Hallo Messie,

ich habe dein Problem noch nicht ganz verstanden. Kannst du es konkretisieren?
Vielleicht hilft folgender Code aber schon weiter:
Delphi-Quellcode:
type
  TMyType = 'a'..'z';
  TMyArray = array[TMyType] of string;

var
  Daten : TMyArray;

implementation

{$R *.dfm}

procedure Test;
var lk : Char;
begin
  // Daten von a bis z durchlaufen.
  for lk := Low(TMyType) to High(TMyType) do begin
    ShowMessage(Daten[lk]);
  end;

  // Oder direkter Zugriff mit einem Buchstaben.
  ShowMessage(Daten['b']);
end; // Test
Gruß,
pszopp
www.pstipp.de | Tippseite zur Formel 1 und Fußball WM/EM - kostenlos und Just-For-Fun
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#4

Re: set of char wie array behandeln

  Alt 21. Jun 2007, 11:06
Die Problembeschreibung ist ungenuegend. Geht es um doppelte Buchstaben? Sollen die Vorkommen gezaehlt werden oder will man die Position des ersten Vorkommens?
Hier mal ein Vorschlag fuer das Zaehlen:
Delphi-Quellcode:
const
  AnzahlBuchstaben = 26; // 'a'..'z'
var
  Text: string; // zu durchsuchender Text
  Vorkommen: array [0..AnzahlBuchstaben*2 - 1] of Integer; // hier wird gezaehlt
  I: Integer;
begin
  for I := Low(Vorkommen) to High(Vorhommen) do
    Vorkommen[I] := 0;
  for I := 1 to Length(Text) - 1 do
    if Text[I] = Text[I+1] then
    begin
      if Text[I] in ['a'..'z'] then
        Inc(Vorkommen[Ord(Text[I]) - Ord('a')])
      else
      if Text[I] in ['A'..'Z']) then
        Inc(Vorkommen[Ord(Text[I]) - Ord('A') + AnzahlBuchstaben]);
    end;
end;
Danke, Fehler behoben.
  Mit Zitat antworten Zitat
fwsp
(Gast)

n/a Beiträge
 
#5

Re: set of char wie array behandeln

  Alt 21. Jun 2007, 11:11
to robert:
zeile 13 müsste so lauten if Text[I] in ['a'..'z'] then
  Mit Zitat antworten Zitat
messie

Registriert seit: 2. Mär 2005
Ort: Göttingen
1.592 Beiträge
 
Delphi 2009 Professional
 
#6

Re: set of char wie array behandeln

  Alt 21. Jun 2007, 11:30
Zitat von pszopp:
for lk := Low(TMyType) to High(TMyType) do begin
Das war genau das, was ich suchte: der Zugriff auf den set per char.

Dann komme ich mitShowMessage(lk) an jedes Element des set - auch ohne das in einem array parken zu müssen.


Danke an alle, Messie
  Mit Zitat antworten Zitat
Antwort Antwort


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 01:02 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