AGB  ·  Datenschutz  ·  Impressum  







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

Arrays auf ungleichheit Prüfen

Ein Thema von Starworld1000 · begonnen am 14. Jul 2017 · letzter Beitrag vom 15. Jul 2017
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Zacherl
Zacherl

Registriert seit: 3. Sep 2004
4.629 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#11

AW: Arrays auf ungleichheit Prüfen

  Alt 14. Jul 2017, 15:15
Ich glaube ich habe mich verlesen. Ich dachte hier eher an eine Funktion, der man Parameter übergibt und die Boolean zurückgibt.
So ist es im Grunde auch, nur dass die Funktion als Operator implementiert wurde. Ist halt einfacher/schöner zu verwenden.
Projekte:
- GitHub (Profil, zyantific)
- zYan Disassembler Engine ( Zydis Online, Zydis GitHub)
  Mit Zitat antworten Zitat
Glados
(Gast)

n/a Beiträge
 
#12

AW: Arrays auf ungleichheit Prüfen

  Alt 14. Jul 2017, 15:42
Bin ich wirklich so doof?

Delphi-Quellcode:
var
 aA: TArray<string>;
 aB: TArray<string>;
 b: Boolean;
begin
 aA := TArray<string>.Create('1', '2', '3');
 aB := TArray<string>.Create('1', 'B', '3', '4');

 b := '1in aB;
end;
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: Arrays auf ungleichheit Prüfen

  Alt 14. Jul 2017, 16:19
Hab's noch nicht selber vollumfänglich ausprobiert ... nur ab und an die Werbetexte und Beispiele in verschiedenen Blogs gesehn.


Ich glaub in 10.2 wurde nochmal was gemacht,
aber in 10.1 fing es damit an.
http://docwiki.embarcadero.com/RADSt...Dynamic_Arrays

String-Like, wobei man es vielleicht besser mit Enum/Set vergleichen könnte, als mit Strings.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#14

AW: Arrays auf ungleichheit Prüfen

  Alt 14. Jul 2017, 22:40
Mich würde zunächst einmal interessieren wie die Stör(begin)-Meldung und die Stör(end)-Meldung aussieht.Und wie die entsprechenden Meldungen herein kommen. dementsprechend kann dann die weitere Verarbeitung erfolgen.

Gruß
K-H

P.S.
Auch ich halte ein Array zunächst einmal nicht für die optimale Wahl.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Benutzerbild von stahli
stahli

Registriert seit: 26. Nov 2003
Ort: Halle/Saale
4.343 Beiträge
 
Delphi 11 Alexandria
 
#15

AW: Arrays auf ungleichheit Prüfen

  Alt 14. Jul 2017, 23:04
Mal noch ein Versuch, einen geordneten Einstieg zu finden...

Du solltest m.E. mit Klassen arbeiten:

Delphi-Quellcode:
TStoerungStatus = (ssNeu, ssBearbeitung, ssErledigt);

TStoerung = class
  Zeit: TDateTime;
  Bereich: String;
  Meldung: String;
  Status: TStoerungStatus;
end;
Dann hast Du pro Störung ein Objekt. Dieses kannst Du in Listen speichern, verschieben, weitergeben und löschen.

Deine Störungen bekommst Du als HTML-Seite und parst daraus die relevanten Daten. Richtig?
Wie viele solche Meldungen kommen davon in welcher Zeit rein?

Für jeden geparste Störung erzeugst Du ein StörungsObjekt und prüfst, ob dieses schon in der Störungsliste steht.

Hier ist mir unklar, ob die Störungen ggf. mehrfach gemeldet werden und wie Du eigentlich erkennen willst, ob die Störung schon gemeldet wurde.
Eigentlich sollte hier möglichst eine eindeutige ID existieren, damit man die Störungen zuverlässig vergleichen kann.

Wenn sehr viele schnelle Störungen reinkommen sollten, sollte man die Liste sortieren (z.B. eine binäre Suche verwenden), damit die Vergleiche schnell erfolgen können.

Also wenn eine neue Störung reinkommt, erhält sie den Status ssNeu und wird in die Liste gespeichert.

Jetzt können alle neuen Störungen nacheinander bearbeitet werden und erhalten den Status ssBearbeitung.

Wenn diese dann erledigt sind erhalten sie den Status ssErledigt.

Erledigte Störungen können dann in die Datenbank gespeichert und aus der Liste gelöscht werden.


Eine Alternative zu dieser Statuslösung wäre die Verwendung von 3 Listen (Eingang, Bearbeitung, Erledigt) und die Objekte dann von einer in die nächste Liste zu schieben.

Da ich Deinen Ablauf immer noch nicht verstanden habe, ist das vielleicht mal ein kleiner Vorschlag, um sich der Sache anzunähern.
Stahli
http://www.StahliSoft.de
---
"Jetzt muss ich seh´n, dass ich kein Denkfehler mach...!?" Dittsche (2004)
  Mit Zitat antworten Zitat
mensch72

Registriert seit: 6. Feb 2008
838 Beiträge
 
#16

AW: Arrays auf ungleichheit Prüfen

  Alt 15. Jul 2017, 11:29
Mein Ansatz wäre im Prinzip ähnlich dem von Stahli gerade vorgeschlagenem, das mit getrennten Dictionarys zu lösen... und ganz wichtig: eine eigene CompareFunktion, weil man so einfach selbst bestimmt was wie verglichen werden soll... das ist zu 99% viel passender wie ein "zwangsweise 100% binary egual" ArrayVergleich per Operator durch den Compiler

- also alles zunächst wie gewollt im erste "LiveDictionary" zufügen bzw. aktualisieren
- dann z.B. im Timer alles(per "for each") aus dem "LiveDictionary" im ersten "LiveDictionary" auf Vorhandensein prüfen und wenn ja aktualisieren bzw. sonst zufügen und passendes auslösen
- usw...

Das mit dummen Arrays zu machen ist uneffektiv. Dictionarys mit dummen Records wären da sicher schonmal etwas besser und eleganter. Wenn es "schön" werden soll, das das Ganze mit/in eigener Storage-Klasse kapseln und dort auch die zugehörigen internen Comparer mit unterbringen... Mr. Rabe würde gleich noch ein ZugriffsInterface und ein SpeicherInterface designen, dann wird es sogar nebenbei universell erweiterbar/austauschbar.

Auch bei QuickAndDirty würde ich bei uns mindestens ne Kombi aus einer eineindeutigen "globalen/gesamt" TObjectList(oder "=" DB-Tabelle) UND separaten Dictionarys[HASH->"ol"INDEX](oder "=" DB-Zuordnungstabellen) für deine verschiedenen (Zeit)Kategorien und/oder States aller Störungen realsieren und das in einer eindeutig benannten Klasse(hier z.B. "Störungen") kapseln.

Dies entspricht der Tatsache, das dein Problem bei uns unter dem allgemeinem Sichwort "JobList" liefe und per "DesignRule" nach diesem allgemeingültigen internem Grundkonzept gelöst werden würde.

Geändert von mensch72 (15. Jul 2017 um 11:32 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:51 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