AGB  ·  Datenschutz  ·  Impressum  







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

Named Pipes - mitlesen

Ein Thema von kuba · begonnen am 17. Sep 2009 · letzter Beitrag vom 19. Sep 2009
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von himitsu
himitsu

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

Re: Named Pipes - mitlesen

  Alt 17. Sep 2009, 21:37
ReadFile + buffer[1] !

daher könnte auch ein unbestimmtes Zeichen am Ende des Strings stammen
und ein fehlendes Zeichen am Anfang des Strings

[add]
und dann auch nicht SizeOf(Buffer), sondern High(Buffer) !
(beim ShortString gibt High den höchstmöglichen Zeichenindex und somit die Maximallänge an)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#12

Re: Named Pipes - mitlesen

  Alt 17. Sep 2009, 23:21
Ja, tatsächlich. Jetzt hab ich die Daten komplett !

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
   buffer: shortstring;
   dw : dword;
begin
   Timer1.enabled:=true;
   ReadFile(Pipe, buffer[1], high(buffer), dw, nil);
   buffer[0] := Char(dw);
   Memo1.Lines.Add(buffer);
end;
thanx !

kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Named Pipes - mitlesen

  Alt 17. Sep 2009, 23:42
nimm aber besser statt dem char(dw) eine der beiden Möglichkeiten
Delphi-Quellcode:
buffer[0] := AnsiChar(dw);

SetLength(buffer, dw);
bei SetLength weiß man vielleicht in jahren noch, was gemeint ist

und das mit dem AnsiChar ... nja, ab Delphi 2009 ist Char ein WideChar, aber ShortString bleibt Ansi und dann gibt es Probleme wegen dem Unicode-zu-Ansi.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#14

Re: Named Pipes - mitlesen

  Alt 18. Sep 2009, 00:10
Zitat von himitsu:
bei SetLength weiß man vielleicht in jahren noch, was gemeint ist
ich weiss genau was du meinst, ich hatte ungefähr 10 Jahre "Programmierpause". Inzwischen hat sich viel verändert

Delphi-Quellcode:
procedure TForm2.Button1Click(Sender: TObject);
var
   buffer: shortstring;
   dw : dword;
begin
   Timer1.enabled:=true;
   ReadFile(Pipe, buffer[1], high(buffer), dw, nil);
   SetLength(buffer, dw); //buffer[0] := PAnsiChar(dw);
   Memo1.Lines.Add(buffer);
end;
kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Named Pipes - mitlesen / event filtern

  Alt 18. Sep 2009, 21:16
Hallo,

ich möchte in meinem buffer noch ein event filtern, das sieht so aus: ?C*PU00000B8F
Dabei ist ?C*PU das Event und 00000B8F die Value in HEX.

Kann mir wohl nochmal jemand auf die Sprünge helfen, mit dem buffer hab ich´s nicht so

kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

Re: Named Pipes - mitlesen

  Alt 18. Sep 2009, 21:31
String (den hast'e schon) + Delphi-Referenz durchsuchenPos und Delphi-Referenz durchsuchenCopy?
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Named Pipes - mitlesen

  Alt 18. Sep 2009, 21:37
ja genau, copy ...

kuba
Stefan Kubatzki
E=mc2
  Mit Zitat antworten Zitat
Benutzerbild von kuba
kuba

Registriert seit: 26. Mai 2006
Ort: Arnsberg
588 Beiträge
 
Delphi 11 Alexandria
 
#18

Re: Named Pipes - mitlesen

  Alt 19. Sep 2009, 01:06
Hallo,

sch..ade, ich komm nich drauf

dies sollte doch eigentlich funktionieren:

Delphi-Quellcode:
if Pos('?C*PU',buffer) > 0 then
Edit1.Text:=copy(buffer,(pos('?C*PU',buffer)+5),8);
aber es kommt nur müll

kuba
Stefan Kubatzki
E=mc2
  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 08:35 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