AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Operator ist auf diesen operatortyp nicht anwendbar
Thema durchsuchen
Ansicht
Themen-Optionen

Operator ist auf diesen operatortyp nicht anwendbar

Ein Thema von Demon666 · begonnen am 16. Jun 2010 · letzter Beitrag vom 16. Jun 2010
Antwort Antwort
Seite 1 von 2  1 2      
Demon666

Registriert seit: 16. Jun 2010
21 Beiträge
 
Delphi 7 Personal
 
#1

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 20:46
wortende:=wortende+1; und
i:=i+1;
Simon
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 20:49
Wo ist i deklariert?
WEs sollte so reichen
   if Zeile[wortende] in [char( 32)..char( 64)] or Zeile[wortende] in [char( 91)..char( 96)] ... Aber ich vermute der Fehler ist woanders
Markus Kinzler
  Mit Zitat antworten Zitat
Demon666

Registriert seit: 16. Jun 2010
21 Beiträge
 
Delphi 7 Personal
 
#3

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 20:55
@mkinzler:i ist eine globale veriable
und ich will ja alles was kein buchstabe ist abdecken...

edit: danke @himitsu, funktioniert jetzt, aber beim dem end; ganz am ende der procedure krieg ich jetzt ein '.' erwartet aber ';' gefunden
edit2 (tut mir leid für die vielen edits): hab ein end zu viel, habs rausgelöscht un bekomme jetzt bei dem else von der ganz großen if schleife ein "end erwartet aber else gefunden"
Simon

Geändert von Demon666 (16. Jun 2010 um 21:00 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 20:59
Zitat:
@mkinzler:i ist eine globale veriable
Aud derartige globale Variablen sollte man verzichten. Übergebe den Index als Parameter der Prozedur/Funktion
Zitat:
und ich will ja alles was kein buchstabe ist abdecken...
Dann würde ich die Abfragelogik umdrehen
Markus Kinzler
  Mit Zitat antworten Zitat
Demon666

Registriert seit: 16. Jun 2010
21 Beiträge
 
Delphi 7 Personal
 
#5

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 21:04

Übergebe den Index als Parameter der Prozedur/Funktion
wie mach ich das?

Dann würde ich die Abfragelogik umdrehen
was meinst du mit umdrehen?


@himitsu: wie freigeben? und die anzahl der ends und begins hab ich schon 10 mal gezählt, die stimmen
Simon
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#6

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 21:02
PS: Wo wird woerterbuch eigentlich wieder freigegeben?
(ich sehe da ein nettes Speicherleck und von Resourcenschutzblöcken ala Try-Finally dagegen nichts)

aber beim dem end; ganz am ende der procedure krieg ich jetzt ein '.' erwartet aber ';' gefunden
Stichwort Codeformatierung (vorallem die Einrückung).
Zähle mal deine BEGIN und die jeweils zugehörigen END durch.

Wobei eine gute Codeformatierung das Durchzählen eigentlich überflüssig machen würde, da man solche Fehler oftmals sofort erkennen würde.
Ein Therapeut entspricht 1024 Gigapeut.

Geändert von himitsu (16. Jun 2010 um 21:04 Uhr)
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 21:05
Oder man Verwendet einen AddIn der das farblich virtualisiert wie z.B. Castalia oder CnWizards
Markus Kinzler
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 21:11
Zitat:
wie mach ich das?
procedure TFormrechtschreibung.Rechtschreibungpruefen( PruefString: string); Und dann PruefString statt
Zeile:=Form1.Memo.Lines[i]; verwenden.
Zitat:
was meinst du mit umdrehen?
Nicht die vielen abfragen, welche es sind sondern die wenigen, die es nicht sind ausschliessen
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.553 Beiträge
 
Delphi 12 Athens
 
#9

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 21:17
'ne kleine Umformatierung meint da was Anderes:
Delphi-Quellcode:
procedure TFormrechtschreibung.Rechtschreibungpruefen;
var
  woerterbuch: TStringList;
  Zeile: string;
  wort: shortstring;
  wortanfang, wortende, S, R: Integer;
begin
  woerterbuch := TStringList.Create;
  woerterbuch.LoadFromFile('wörterbuch.txt');
  wortanfang := 1;
  wortende := 1;
  Zeile := Form1.Memo.Lines[i];
  for R := 1 to Length(Zeile) do
  begin
    wort := '';

   if Zeile[wortende] in ... then
    begin
      ...
    end
    else
      wortende := wortende + 1;
    if wortende = Length(Zeile) then
      i := i + 1;

  end; // von if // nee, vom for
end; // von for // und hier von der Prozedur

end; // das hier gehört nicht mehr dazu
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.784 Beiträge
 
Delphi 10.4 Sydney
 
#10

AW: Operator ist auf diesen operatortyp nicht anwendbar

  Alt 16. Jun 2010, 21:08
".. if schleife .."
???




Delphi-Quellcode:
procedure TFormrechtschreibung.Rechtschreibungpruefen;
begin
  woerterbuch:=Tstringlist.create;
  woerterbuch.LoadFromFile('wörterbuch.txt');
  wortanfang:=1;
  wortende:=1;
  Zeile:=Form1.Memo.Lines[i];
  for r:=1 to Length(Zeile) do
    begin
      wort:='';

      if (...) then
        begin
          wort:=Copy(Zeile,Wortanfang,Wortende-1);
            for s:=0 to Woerterbuch.count-1 do
              begin
                if wort<>woerterbuch[s] then
                  begin
                    Edfalscheswort.Text:=wort;
                    exit;
                  end; //von if
              end; //von for
        end
      else
        wortende:=wortende+1;
      if wortende=Length(Zeile) then
        i:=i+1;
     //end;//von if
    end; //von for

end;
Habe es mal mit einrücken versucht.
Solltest Du dir auch einmal angewöhnen.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 19:36 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