AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Den Ordinal Wert eines Elements im Set ermitteln
Thema durchsuchen
Ansicht
Themen-Optionen

Den Ordinal Wert eines Elements im Set ermitteln

Ein Thema von Kostas · begonnen am 20. Mai 2015 · letzter Beitrag vom 21. Mai 2015
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#1

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 20. Mai 2015, 22:54
Jetzt habe ich eine Lösung gefunden. Muss ich morgen noch genau testen.
Das sieht doch nach einem guten Ansatz aus.
An deiner Stelle würde ich alle Einträge in dem Array füllen, die zu ignorierenden Sonderzeichen mit null und die gleichbleibenden Zeichen mit dem entsprechendem Zeichen. Dann brauchst du nach dem Nachschlagen nur noch die Nullwerte verwerfen.
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#2

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 20. Mai 2015, 23:12
Das Problem ist, die Daten erzeugt eine externe Hardware. Der Hersteller konnte mir die Frage welche
CodePage verwendet wird nicht beantworten. Auch eine Erklärung warum die Umlaute und ein paar weitere Zeichen nicht nach ASCII ausgegeben werden sondern aus einer Umsetzungstabelle zu holen sind, hatte er nicht.

Somit bleibt mir nichts anderes als alle Zeichen versuchen als Char auszugeben und nur die Special characters
umzubiegen. Das System ist halt Historisch über die Jahre gewachsen und so richtig den Durchblick hat keiner,
incl. mich.

Was mich allerdings wundert ist, das Array SpecialCharacters konnte ich per SetLength(SpecialCharacters,13)
setzen. Die Values konnte ich jedoch setzen. Eigentlich hätte ich erwartet dass es Knallt.

Herzlichen Dank für die Hilfe nochmals. Das Thema ist erst einmal vom Tisch.

Gruß Kostas
  Mit Zitat antworten Zitat
BadenPower

Registriert seit: 17. Jun 2009
616 Beiträge
 
#3

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 21. Mai 2015, 09:00
Was mich allerdings wundert ist, das Array SpecialCharacters konnte ich per SetLength(SpecialCharacters,13)
setzen. Die Values konnte ich jedoch setzen.
Müsste dieser Satz nicht so heißen:

... das Array SpecialCharacters konnte ich per SetLength(SpecialCharacters,13) NICHT setzen.

[EDIT]
Und wenn das NICHT in Deinem Satz fehlt, dann ergibt dieser auch Sinn.

Jedoch braucht man sich aber nicht wundern, dass SetLenght nicht funktioniert, aber die Zuweisungen, da es sich bei Deinem Array SpecialCharacters ja um ein konstantes Array[0..255] handelt und somit dann alles seine Richtigkeit hat.
Programmieren ist die Kunst aus Nullen und Einsen etwas sinnvollen zu gestalten.
Der bessere Künstler ist allerdings der Anwender, denn dieser findet Fehler, welche sich der Programmierer nicht vorstellen konnte.

Geändert von BadenPower (21. Mai 2015 um 09:14 Uhr)
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#4

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 21. Mai 2015, 09:45
Was mich allerdings wundert ist, das Array SpecialCharacters konnte ich per SetLength(SpecialCharacters,13)
setzen. Die Values konnte ich jedoch setzen.
Müsste dieser Satz nicht so heißen:

... das Array SpecialCharacters konnte ich per SetLength(SpecialCharacters,13) NICHT setzen.

[EDIT]
Und wenn das NICHT in Deinem Satz fehlt, dann ergibt dieser auch Sinn.

Jedoch braucht man sich aber nicht wundern, dass SetLenght nicht funktioniert, aber die Zuweisungen, da es sich bei Deinem Array SpecialCharacters ja um ein konstantes Array[0..255] handelt und somit dann alles seine Richtigkeit hat.
Auch wieder komplett richtig. Ich meinte natürlich "NICHT" Jetzt ist mir auch klar warum das nicht geht.
Dankeschön für die Erklärung.

Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 20. Mai 2015, 23:30
Wenn ich mir diese Übersetzungs-Liste anschaue, dann bekommst du eine Bytefolge der einen String in den Codepage 850 beinhaltet.

Warum also dieser Aufwand?
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 21. Mai 2015, 08:22
....und mich erinnert die Problematik etwas an diesen Thread:

Schnellstes entfernen ...

weil: was für Entfernen schnell ist, ist auch für Ersetzen gut
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#7

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 21. Mai 2015, 09:43
Wenn ich mir diese Übersetzungs-Liste anschaue, dann bekommst du eine Bytefolge der einen String in den Codepage 850 beinhaltet.

Warum also dieser Aufwand?
Hallo Rufo,

ich hatte mit die Code Page auf der wiki http://de.wikipedia.org/wiki/Codepage_850 angeschaut und mich täuschen lassen durch die Hex-Zahl unterhalb
des Zeichen. Doch die Zahl ist die Unicode Zahl. In der Matrix Links und oben ist die Zahl schön zu sehen.
Mist, jetzt muss ich nur schauen wie den empfangenen String in CodePage=850 umwandeln kann um aus ein
0x81 ein ü zu bekommen. Das ist sicherlich im Forum zu finden. Dankeschön für den Hinweis.

Gruß Kostas
  Mit Zitat antworten Zitat
mm1256

Registriert seit: 10. Feb 2014
Ort: Wackersdorf, Bayern
642 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 21. Mai 2015, 10:02
Mist, jetzt muss ich nur schauen wie den empfangenen String in CodePage=850 umwandeln kann um aus ein
0x81 ein ü zu bekommen. Das ist sicherlich im Forum zu finden. Dankeschön für den Hinweis.

Gruß Kostas
Aber lesen tust du schon...? Den Link für die schnellste - von einigen DP'lern erarbeitetete - Lösung hab ich dir doch schon gegeben. Du musst die Routine nur an einer einzigen Stelle anpassen.
Gruss Otto PS: Sorry wenn ich manchmal banale Fragen stelle. Ich bin Hobby-Programmierer und nicht zu faul die SuFu zu benutzen
  Mit Zitat antworten Zitat
Kostas

Registriert seit: 14. Mai 2003
Ort: Gerstrhofen
1.115 Beiträge
 
Delphi 12 Athens
 
#9

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 21. Mai 2015, 10:29
Mist, jetzt muss ich nur schauen wie den empfangenen String in CodePage=850 umwandeln kann um aus ein
0x81 ein ü zu bekommen. Das ist sicherlich im Forum zu finden. Dankeschön für den Hinweis.

Gruß Kostas
Aber lesen tust du schon...? Den Link für die schnellste - von einigen DP'lern erarbeitetete - Lösung hab ich dir doch schon gegeben. Du musst die Routine nur an einer einzigen Stelle anpassen.

Auf die Gefahr hin dass du mich jetzt steinigst, habe ich den Thread gelesen. Doch in der Zwischenzeit
habe ich den Hinweis von SirRufo bekommen es handelt sich um die CodePage 850. Deshalb versuche ich
es damit: FBytes := TEncoding.GetEncoding(850).GetBytes(Msg); Gruß Kostas
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Den Ordinal Wert eines Elements im Set ermitteln

  Alt 21. Mai 2015, 11:07
Deshalb versuche ich
es damit: FBytes := TEncoding.GetEncoding(850).GetBytes(Msg);
Und wie machst du das unter Delphi 5?
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 13:47 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