AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Wert abgleichen mit berücksichtigung von ">","<&q
Thema durchsuchen
Ansicht
Themen-Optionen

Wert abgleichen mit berücksichtigung von ">","<&q

Ein Thema von Real-TTX · begonnen am 24. Mai 2008 · letzter Beitrag vom 28. Mai 2008
Antwort Antwort
Real-TTX

Registriert seit: 7. Mai 2008
Ort: Stuttgart / Wertheim
136 Beiträge
 
Delphi 2007 Enterprise
 
#1

Wert abgleichen mit berücksichtigung von ">",&q

  Alt 24. Mai 2008, 17:45
Hi Leute,

Ich stehe gerade vor einem Problem, auf das ich keine Lösung finde. Ich habe eine Tabelle erstellt (Bild siehe Anhang) und möchte nun auf einzelne Spalten prüfen. Die Werte Der Spalten(Header) können sich verändern (stehen in einer XML Datei).

Dabei ist zuberücksichtigen dass die einzelnen Spalten auch > und < haben können. Eine Spalte sieht zb so aus: ">0,5 - 3"

Nun habe ich ein Textfeld (Edit). Dieses möchte ich auswerten lassen(Einsortieren in die richtige Spalte) ....

Falls es euch hilft, hier der Code wie ich die Tabelle (Grid) fülle:

Delphi-Quellcode:
  XMLVL := newXMLDocument;
  XMLVL.LoadFromFile(Config.XMLVALUE_FILE);

  VList := XMLVLRead(XMLVL);

  for i := 1 to 8 do
  begin
    OutputString := '';
    case StrToInt(VList.List[i].VFromType) of
      1: OutputString := OutputString + '>';
      2: OutputString := OutputString + '<';
      3: OutputString := OutputString;
    end;

    OutputString := OutputString + VList.List[i].VFrom + ' - ';

    case StrToInt(VList.List[i].VToType) of
      1: OutputString := OutputString + '>';
      2: OutputString := OutputString + '<';
      3: OutputString := OutputString;
    end;

    OutputString := OutputString + VList.List[i].VTo;

    with (StrGValues) do
    begin
      Cells[i,0] := OutputString;
      Cells[i,1] := VList.List[i].VSectionA;
      Cells[i,2] := VList.List[i].VSectionB;
      Cells[i,3] := VList.List[i].VSectionC;
      Cells[i,4] := VList.List[i].VSectionD;
    end;
  end;

  with (StrGValues) do
  begin
    for i := 1 to 4 do
    begin
      Cells[0,i] := VList.Section[i];
    end;
    Cells[0,0] := VList.Name;
  end;
Hat jemand eine Idee?

Gruß, Real-TTX
Miniaturansicht angehängter Grafiken
frmvalues_529.jpg  
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Wert abgleichen mit berücksichtigung von ">"

  Alt 24. Mai 2008, 18:56
Hi,

die Toleranztabellen nach ISO 2768 sind ihrer mathematischen Natur nach nicht-stetige Abbildungen, wobei ein Wertebereich in mehrere - mit Ausnahme des ersten - nach links halb offene Intervalle zerlegt ist. Mit XML hat dein Problem eigentlich wenig zu tun.

Wenn du mit den Maxima der Teilintervalle einen Vektor (List, Array) bildest und auf diesem eine binäre Suche implementierst, dann liefert dir die Suche bei geschickter Implementierung genau den Index des Intervalls, in den der gesuchte Wert fällt. Für das erste (geschlossene) Intervall musst du dann nur noch eine Sonderbehandlung einführen und fertig.

Der Text im Spaltenkopf kann ja enthalten was er will, aber gespeichert werden sollten nur die oberen Intervallgrenzen. Alles andere, insbesondere die Darstellung im Spaltenkopf lässt sich aus den rohen Daten rekonstruieren. Da die Norm kaum einer Veränderung unterliegt, ist eine externe Speicherung nicht unbedingt sinnvoll. Da würde mich interessieren, warum du die Daten nicht gleich im Programm als Konstanten festlegst und warum du XML als externes Format gewählt hast.

Freundliche Grüße
  Mit Zitat antworten Zitat
Real-TTX

Registriert seit: 7. Mai 2008
Ort: Stuttgart / Wertheim
136 Beiträge
 
Delphi 2007 Enterprise
 
#3

Re: Wert abgleichen mit berücksichtigung von ">"

  Alt 24. Mai 2008, 19:29
Danke für deine Antwort marabu.

Doch (ohne angreifend zu wirken) ist der Thread auch in der "Object Pascal / Delphi Language" Sparte und nicht in der XML Sparte. Somit ist mein Problem auch nicht XML / XML Parser ... Sondern die Sprache. Ich habe mich gefragt wie ich dies zuordnen kann...

Ich habe dein ersten Absatz nicht so ganz Verstanden :/

Aber habe die Lösung in deiner Antwort gefunden, danke

LG,Real-TTX
  Mit Zitat antworten Zitat
Real-TTX

Registriert seit: 7. Mai 2008
Ort: Stuttgart / Wertheim
136 Beiträge
 
Delphi 2007 Enterprise
 
#4

Re: Wert abgleichen mit berücksichtigung von ">"

  Alt 28. Mai 2008, 17:42
Im übrigen:

Naja es ist eine DIN ISO. Wie du es schon sagtest : "... kaum eine Veränderung..." Es ist nicht gewährleistet und ich habe keine 100% Sicherheit darauf, dass sich diese Norm nicht ändert. Wenn sie es tut, und ich lege die Werte fest im Programm als Konstanten fest. Kann ich meine alten Programm-Versionen in den Müll werfen.

Ich habe XML aus dem Grund verwendet weil, XML eine Auszeichnungssprache ist. Wir Menschen können sie lesen und verstehen und der Computer kann sie verarbeiten Nach meiner Meinung ist XML sogar sehr gut dafür geeignet. Oder irre ich mich?

Gruß, Real-TTX
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: Wert abgleichen mit berücksichtigung von ">"

  Alt 28. Mai 2008, 20:48
Hallo,

Zitat von marabu:
... Da die Norm kaum einer Veränderung unterliegt, ...
das heißt bei mir soviel wie: Bevor diese Norm verändert wird, lernen Kühe fliegen. Bevor etwas zur ISO Norm wird, muss es sich in der Regel bereits als langfristig stabil erwiesen haben. ISO Normen werden auch nicht fortgeschrieben, es werden einfach neue Normen erlassen. Du darfst also davon ausgehen, dass ISO 2768 länger bestehen wird, als dein Programm.

Verstehe mich bitte nicht falsch: Es geht mir nicht darum deinen Enthusiasmus für XML zu bremsen, sondern ich wollte dein Augenmerk nur darauf lenken, dass genau der Norm-Charakter ein starkes Argument gegen eine externe Datenvorhaltung, noch dazu in einem per Editor leicht zu verändernden Format, ist.

Über die grundsätzliche Eignung einer Markup Language, speziell XML, zur Beschreibung solcher Daten besteht kein Zweifel. Die Lesbarkeit von XML wird m.E. oft überbewertet. Grundsätzlich erleichtert ein human readable format die oberflächliche visuelle Kontrolle, aber die Stärke von XML liegt in seiner Eignung als deskriptives Datenformat in (auch plattformübergreifenden) Prozessketten. Je komplexer die Struktur der Daten, desto vorteilhafter der Einsatz von XML. Dabei gilt der Umkehrschluss, d.h. je einfacher die Struktur der Daten, desto fragwürdiger der Einsatz von XML.

Nehmen wir einfach mal an, dass du an der Speicherung der Toleranzangaben in einem XML-Dokument festhältst, dann möchte ich dir zwei Dinge ans Herz legen: Es gibt viele Möglichkeiten für den Aufbau des XML-Dokuments, also überdenke dein XML-Vokabular genau - einen Hinweis auf die Intervallnatur der Daten habe ich dir bereits gegeben. Und sichere dein Programm gegen ein manipuliertes XML-Dokument ab. Du musst Manipulationen nicht unbedingt verhindern, aber du solltest sie erkennen können.

Gute Nacht.
  Mit Zitat antworten Zitat
Real-TTX

Registriert seit: 7. Mai 2008
Ort: Stuttgart / Wertheim
136 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: Wert abgleichen mit berücksichtigung von ">"

  Alt 28. Mai 2008, 21:18
Ja, danke für die Umfassende Antwort. Ich sehe, ich muss und kann noch viel lernen. Ich war dem meisten schon bewusst. Allerdings habe ich zur Zeit immer öfters XML als einsatz für solche Sachen gesehen. Ich kenne mich nicht genau aus. Ich weis nicht wie der Parser für solche Dateien vorgeht und leider auch nicht den genauen Einsatz für solche. Wobei ich schon finde dass die Dateien gut zu lesen sind, wenn ich mir andere als Vergleich anschaue.

Mehr sagen wie Danke, kann ich im moment nicht. Das einsetzen der XML Datei war auch gedacht, dass ich evtl mehrere solche Dateien habe. Beispiel: Tabelle 2 dieser Norm. Oder ähnliches. Es gibt auch eine Menge anderer Toleranztabelle die im Zusammenhang mit so einem Programm verwendet werden können. Es gibt ein paar Landeseigene Normen. Ich glaube gelesen zu haben das Spanien auch eine eigene hat. Die Speziell bei Maßen in dem Einsatz von X verwendet wird.

Gruß, Real-TTX
  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 20: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