AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign Austauschen einer Case Anweisung mit einer Sinnvolleren
Thema durchsuchen
Ansicht
Themen-Optionen

Austauschen einer Case Anweisung mit einer Sinnvolleren

Ein Thema von Mo53 · begonnen am 26. Mai 2021 · letzter Beitrag vom 1. Jun 2021
Antwort Antwort
Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#1

AW: Austauschen einer Case Anweisung mit einer Sinnvolleren

  Alt 26. Mai 2021, 23:05
Vielen Dank Leute, das hat mir sehr weitergeholfen
  Mit Zitat antworten Zitat
Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#2

AW: Austauschen einer Case Anweisung mit einer Sinnvolleren

  Alt 27. Mai 2021, 14:05
Ich versuche jetzt gerade für Menüpunkt D eine Anweisung zu erstellen die alle Wörter in denen kein Operator enthalten ist löscht.
Bsp.: (Gu+en Tag) wird zu (Gu+en).
Jedoch ist dies komplizierter als gedacht.
Habt iht vielleicht eine Idee?
Ich darf jedoch keine Arrays oder selbstgemachte Funktionen anwenden.

Delphi-Quellcode:
 begin
          if length(satz) > 0 then
          begin
            leerZeichen := ' ';
            laufVariable := 1;
            repeat
              for laufVariable := 1 to pos(leerZeichen, satz, laufVariable) do
              begin

                case satz[laufVariable] of
                  '+':
                    inc(anzahlPlus);
                  '-':
                    inc(anzahlMinus);
                  '*':
                    inc(anzahlMal);
                  '/':
                    inc(anzahlGeteilt);
                end;
                keinOperator := (anzahlPlus = 0) and (anzahlMinus = 0) and
                  (anzahlMal = 0) and (anzahlGeteilt = 0);
                if keinOperator then
                  delete(satz, laufVariable,
                    (pos(leerZeichen, satz, laufVariable) - 1));

              end;
            until (length(satz) = laufVariable);

          end

Geändert von Mo53 (27. Mai 2021 um 14:08 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Austauschen einer Case Anweisung mit einer Sinnvolleren

  Alt 27. Mai 2021, 14:19
Erst das "ganze" Wort durchgehn
und nach der Schleife wird Entschieden, ob löschen oder nicht.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Mo53

Registriert seit: 16. Mai 2021
59 Beiträge
 
Delphi 10.3 Rio
 
#4

AW: Austauschen einer Case Anweisung mit einer Sinnvolleren

  Alt 27. Mai 2021, 14:41
@Himitsu
Ich mache das ja schon, aber ich verstehe nicht wie ich dem Programm erklären soll das es ein wort von anfang bis ende löscht.
  Mit Zitat antworten Zitat
Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Austauschen einer Case Anweisung mit einer Sinnvolleren

  Alt 27. Mai 2021, 15:03
Gibt es mehrere Möglichkeiten.
Eine wäre z.B. Deinen Text bei jedem Leerzeichen zu splitten (http://www.delphibasics.co.uk/Method...s&Method=Split) und damit ein array zu befüllen.
Dann hast du ein Array in dem jedes Wort einzeln steht.
Dann das Array durchgehen und 1. mit pos() (https://www.delphipraxis.net/28411-post9.html) prüfen ob ein Operator enthalten ist und 2. wenn ja dies dem Ergebnisstring hinzufügen (Leerzeichen nicht vergessen).
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (27. Mai 2021 um 15:06 Uhr)
  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 13:54 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 by Thomas Breitkreuz