AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Steuerzeichen beim einlesen von der COM-Schnittstelle
Thema durchsuchen
Ansicht
Themen-Optionen

Steuerzeichen beim einlesen von der COM-Schnittstelle

Ein Thema von Jens Hartmann · begonnen am 12. Jan 2009 · letzter Beitrag vom 13. Jan 2009
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#1

Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 09:21
Hallo,

ich habe ein Programm geschrieben, mit dem ich aus einer Brandmeldeanlage den Ereignisspeicher als Textdatei drucken kann.

ich lese die Daten direkt von der COM-Schnittstelle ein und gebe sie in einem Memo aus.

Leider hat die Datei Steuerzeichen am Anfang jeder Zeile und bei Umlauten. Wie kann ich das ändern.

(siehe Anhang)

MFG

Jens
Miniaturansicht angehängter Grafiken
print_854.jpg   print_735.jpg  
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 09:29
Guten Morgen,

für die vorderen und hinteren Steuerzeichen würde sich trim(s:String) anbieten.

Die Umlaute willst Du sie nur rauswerfen oder durch darstellbare Zeichen ersetzen.
Zum Prüfen ob ein Zeichen ein alphanumerisches Zeichen oder Steuerzeichen ist,
kannst Du isCharAlpha(c:char) verwenden.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#3

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 09:29
Schau mal nach, in welchem Format die Anlage die Daten liefert. Wenn sie z.B. in Ascii liefert, musst es nach ANSI konvertieren, damit Dein Programm es richtig anzeigt. Vielleicht die Daten mal in einem Hexeditor anschauen.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 09:30
Wenn dir die Steuerzeichen nicht gefallen kannst du sie einfach ersetzen (zum Beispiel mit StringReplace)
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 09:54
Sorry,

vieleicht stehe ich mir momentan ein bißchen auf der Leitung,

wie kann ich den feststellen ob das Format (ich vermute) ASCII ist.

MFG

Jens
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#6

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 10:00
Speicher doch mal einen Auszug aus der Datei als txt ab und häng sie hier an.
Jens
  Mit Zitat antworten Zitat
Benutzerbild von Jens Hartmann
Jens Hartmann

Registriert seit: 11. Jan 2009
Ort: Wilnsdorf
1.439 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 10:05
Hier der Anhang,

Die Datei als txt
Angehängte Dateien
Dateityp: txt 12.01.2009_615.txt (2,4 KB, 21x aufgerufen)
Jens Hartmann
Das Leben selber ist zu kurz, also nutze jeden Tag wie er kommt.
  Mit Zitat antworten Zitat
Benutzerbild von Nersgatt
Nersgatt

Registriert seit: 12. Sep 2008
Ort: Emlichheim
693 Beiträge
 
Delphi 10.1 Berlin Professional
 
#8

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 10:24
Also am Anfang einer Zeile steht immer #13#10. Das ist ein Linefeed + Zeilenumbruch. Ist unter Windows eigentlich Standard. Ich vermute, dass das Memofeld nur ein Zeichen davon als Zeilenumbruch interpretiert.
Für die Umlaute: Ich denke, es wird die Codepage 852 benutzt: http://de.wikipedia.org/wiki/Codepage_852
Du musst also eine Funktion suchen, die Dir die Codepage umrechnet.

Gruß,
Jens
Jens
  Mit Zitat antworten Zitat
Klaus01

Registriert seit: 30. Nov 2005
Ort: München
5.755 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 10:24
Hallo,

die Schnittstelle sendet vielleicht mit CodePage 437.
hexWert 9A -> Ü

41 6C 6C 65 20 9A 62 65 72 74 72 61 67 75 6E 67 73 65 69 6E 72 2E 0D 0D
Alle šbertragungseinr

Die Zeichen am Zeilenanfang sind 0D0A.

Grüße
Klaus
Klaus
  Mit Zitat antworten Zitat
Benutzerbild von user0815
user0815

Registriert seit: 5. Okt 2007
331 Beiträge
 
Delphi XE2 Professional
 
#10

Re: Steuerzeichen beim einlesen von der COM-Schnittstelle

  Alt 12. Jan 2009, 10:28
Die Text Datei in Memo1 kopiert:

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sl : TStringList;
  i : Integer;
begin
  sl := TStringList.Create;

  try
    sl.AddStrings(Memo1.Lines);

    for i := 0 to sl.Count -1 do
    begin
      sl[i] := trim(StringReplace(sl[i], #$D, '', [rfReplaceAll]));
      sl[i] := StringReplace(sl[i], #129, 'ü', [rfReplaceAll]);
      sl[i] := StringReplace(sl[i], #132, 'ä', [rfReplaceAll]);
      sl[i] := StringReplace(sl[i], #142, 'Ä', [rfReplaceAll]);
      sl[i] := StringReplace(sl[i], #148, 'ö', [rfReplaceAll]);
      sl[i] := StringReplace(sl[i], #153, 'Ö', [rfReplaceAll]);
      sl[i] := StringReplace(sl[i], #154, 'Ü', [rfReplaceAll]);

      sl[i] := StringReplace(sl[i], #10#13, ' ', [rfReplaceAll]);

      if sl[i] <> ''
       then Memo2.Lines.Append(SL[i]);
    end;

  finally
    sl.Free;
  end;
end;
Ausgabe:

102 01.02.00 21:05 ID: 2
Codebetrieb EIN
Codebetrieb
103 01.02.00 21:05
ABSCHALT. äUEE
Alle Übertragungseinr.
104 01.02.00 21:05
ABSCHALT. äSG
Alle Steuergruppen
105 01.02.00 21:05
ABSCHALT. äZ-TBL

usw.
  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 12:55 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