AGB  ·  Datenschutz  ·  Impressum  







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

case abfrage

Ein Thema von delphidummy · begonnen am 12. Okt 2008 · letzter Beitrag vom 13. Okt 2008
Antwort Antwort
delphidummy

Registriert seit: 7. Okt 2008
13 Beiträge
 
#1

case abfrage

  Alt 12. Okt 2008, 16:46
so,da sind wir wieder unser nächstes problem ist nun eine case abfrage
Delphi-Quellcode:
const TraegerTyp: array [1..18] of integer = (80,100,120,140,160,180,200,220,240,270,300,330,360,400,450,500,550,600);


//Berechnung des Gewichtes eines I-Träger + Typzuweisung
for a := 1 to 6 do
begin
  if (Widerstandsmomente_array[a] >= 1) and (Widerstandsmomente_array[a] <= 20) then
  begin
  KGItraeger_array[a] := (LaengeITraeger_array[a]/1000) * MproKilo[1]; //MproKilo= kg/m ; LaengeITraeger in m umrechnen
  ITraegerTyp := TraegerTyp[1];
  end;
usw. das funktioniert auch alles.
aber dann wollen wir abhängig vom ausgegebenen itraeger den gesamtpreis berechnen und dann kommt die fehlermeldung array type required...hilfe!

Delphi-Quellcode:
for a := 1 to 6 do

begin
//1.
case ITraegertyp of Traegertyp [1,2,3,4]:
  if (GewichtItraeger_array[a] > 0) and (GewichtItraeger_array[a] <= 399)
  then
  GesamtpreisI_array[a] := (GewichtItraeger_array[a])/1000 * EuroproTonne[1]
  else begin
  if (GewichtItraeger_array[a] >= 400 ) and (GewichtItraeger_array[a] <= 999)
  then
  GesamtpreisI_array[a] := (GewichtItraeger_array[a])/1000 * EuroproTonne[2]
  else begin
  if (GewichtItraeger_array[a] >=1000)
  then
  GesamtpreisI_array[a] := (GewichtItraeger_array[a])/1000 * EuroproTonne[3];

  end;
  end;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: case abfrage

  Alt 12. Okt 2008, 16:48
Von welchem Typ ist denn ITraegertyp?

[edit] Ah, scheint integer zu sein. Was wollt Ihr denn mit der case-Abfrage bezwecken? [/edit]
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
delphidummy

Registriert seit: 7. Okt 2008
13 Beiträge
 
#3

Re: case abfrage

  Alt 12. Okt 2008, 17:12
je nachdem welcher träger vorher bestimmt wurde und wie schwer das ganze is,soll abhängig davon der gesamtpreis ausgerechnet werden. der teil is jetzt nur nen auszug daraus, es gibt noch weitere abfragen,da wir eben 18 verschiedene trägertypen haben, drei gewichtskategorien und etliche unterschiedliche preise.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

Re: case abfrage

  Alt 12. Okt 2008, 17:24
Also soll abgefragt werden, ob ITraegertyp 80,100,120 oder 140 beträgt?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
delphidummy

Registriert seit: 7. Okt 2008
13 Beiträge
 
#5

Re: case abfrage

  Alt 12. Okt 2008, 17:32
ne,also wenn der trägertyp 80,100,120 oder 140 ist, soll eben abgefragt werden,wie schwer die träger sind und dann soll je nach gewicht (zwischen 0 und 399kg,zwischen 400 und 999kg und über 1000kg)ein bestimmter preis zugeordnet werden. daraus ergeben sich dann die gesamtkosten für die träger.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: case abfrage

  Alt 12. Okt 2008, 17:45
Da hab ich im Moment keine gescheite Idee dazu, alles was mir gerade einfällt, sieht unheimlich umständlich aus.

[edit] Naja, vielleicht etwas in der Art:
Delphi-Quellcode:
const
  i80 = 80;
  i100 = 100;
  ...
  TraegerTyp: array [1..18] of integer = (i80, i100,...);
  ...
  case iTraegertyp of
    i80,
    i100,
    ...: begin
           //Code
         end;
  end;
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.007 Beiträge
 
Delphi 12 Athens
 
#7

Re: case abfrage

  Alt 12. Okt 2008, 18:15
Statt ITraegertyp den Wert aus dem Array Traegertyp zuzuweisen, solltest du dir besser den Index merken:

Delphi-Quellcode:
//Berechnung des Gewichtes eines I-Träger + Typzuweisung
for a := 1 to 6 do
begin
  if (Widerstandsmomente_array[a] >= 1) and (Widerstandsmomente_array[a] <= 20) then
  begin
  KGItraeger_array[a] := (LaengeITraeger_array[a]/1000) * MproKilo[1]; //MproKilo= kg/m ; LaengeITraeger in m umrechnen
  idxTraegerTyp := 1;
  end;
Wenn du den Arraywert wirklich brauchst, schreibst du einfach sowas wie:

ITraegertyp := Traegertyp[idxTraegertyp]; Dann kannst du später in der case-Anweisung einfach schreiben:

Delphi-Quellcode:
begin
//1.
case idxTraegertyp of
  1,2,3,4: begin
    if (GewichtItraeger_array[a] > 0) and (GewichtItraeger_array[a] <= 399)
    then
...
Uwe Raabe
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#8

Re: case abfrage

  Alt 12. Okt 2008, 18:18
Das wird wirklich die beste Lösung sein.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
delphidummy

Registriert seit: 7. Okt 2008
13 Beiträge
 
#9

Re: case abfrage

  Alt 13. Okt 2008, 17:14
haben schon den fehler, danke trotzdem
  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 08: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