Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Fremdes C# Steuern (https://www.delphipraxis.net/175875-fremdes-c-steuern.html)

achi 3.0 25. Jul 2013 15:33

AW: Fremdes C# Steuern
 
Mir gehts ja nur darum eine Datei zu senden. Müsste dann der folgende code nicht reichen.

Bin mir nur hier ataStream.AddFile('archive','c:\Yaskawa\Cam_Y.csv' , 'multipart/form-data'); nicht sicher.

Kenn mich mit C# leider nicht aus!!


Delphi-Quellcode:
var
  DataStream : TIdMultiPartFormDataStream;
  FURL : string;
  response : string;

begin
FURL := 'http://192.168.1.1/upload/data/cam';
IdHTTP1.Request.CacheControl:='no cache';
IdHTTP1.Request.ContentType :='multipart/form-data';

try
      DataStream := TIdMultiPartFormDataStream.Create;
      DataStream.AddFile('archive','c:\Yaskawa\Cam_Y.csv', 'multipart/form-data');
      response := IdHTTP1.Post(FURL, DataStream);
      DataStream.Free;
except

end;

end;

achi 3.0 25. Jul 2013 15:46

AW: Fremdes C# Steuern
 
Ich denke mal das ich das hier auch irgendwie entschlüsseln muss. Weil hier wird der stream ja wirklich gesendet. Ich weiß nicht ob da mein Delphicode so direkt passt.

 
private string PostUploadFile(string filePath, string uri, string postMethod, bool validate)
{
string fileName = this.ExtractFileName(filePath);
if (validate && !this.IsValidFileName(fileName))
return "Invalid file name! File name must match one of those found in default configuration!";
HttpWebRequest postRequest = HttpUtility.CreatePostRequest(uri);
byte[] bytes1 = Encoding.UTF8.GetBytes(HttpUtility.CreateFilePostDataString(filePath, "text/xml"));
byte[] bytes2 = Encoding.UTF8.GetBytes(postMethod);
byte[] bytes3 = Encoding.UTF8.GetBytes(HttpUtility.CreateBoundaryPostDataString());
FileStream fileStream = new FileInfo(filePath).Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite);
long num = (long) bytes1.Length + fileStream.Length + (long) bytes2.Length + (long) bytes3.Length;
postRequest.ContentLength = num;
Stream requestStream = ((WebRequest) postRequest).GetRequestStream();
requestStream.Write(bytes1, 0, bytes1.Length);
byte[] buffer = new byte[fileStream.Length];
int count;
while ((count = fileStream.Read(buffer, 0, buffer.Length)) != 0)
requestStream.Write(buffer, 0, count);
requestStream.Write(bytes2, 0, bytes2.Length);
requestStream.Write(bytes3, 0, bytes3.Length);
requestStream.Close();
fileStream.Close();
new StreamReader(postRequest.GetResponse().GetResponseStream()).ReadToEnd();
return "";
}

achi 3.0 26. Jul 2013 16:47

AW: Fremdes C# Steuern
 
Hallo leute es klappt.

Echt super.
Ich danke euch sehr für die Hilfe.
Hab vieles dazu gelernt und die Idee mit dem Decodieren der dll war super. Danke nochmal.


Gibt es eine Möglichkeit die geschwindigkeit zu erhöhen. benötige für 800kb datengröße ca. 50s


Gruß

Achi

Sir Rufo 26. Jul 2013 18:46

AW: Fremdes C# Steuern
 
Zitat:

Zitat von achi 3.0 (Beitrag 1222800)
Hallo leute es klappt.

Echt super.
Ich danke euch sehr für die Hilfe.
Hab vieles dazu gelernt und die Idee mit dem Decodieren der dll war super. Danke nochmal.


Gibt es eine Möglichkeit die geschwindigkeit zu erhöhen. benötige für 800kb datengröße ca. 50s


Gruß

Achi

Wie lange dauert denn der Vorgang mit dem beiliegenden Programm?
Geht das schneller?

OlafSt 26. Jul 2013 18:56

AW: Fremdes C# Steuern
 
Da die Daten an eine nicht näher bezeichnete Steuerung gesendet werden, wird die wohl der Flaschenhals sein.

achi 3.0 29. Jul 2013 09:23

AW: Fremdes C# Steuern
 
Warum an eine nicht näher beschriebene Steuerung? Die Steuerung ist eine Yaskawa MP2300s.

Es ist doch nicht normal das 800kb datengröße ca. 50s dauern oder?

achi 3.0 29. Jul 2013 11:53

AW: Fremdes C# Steuern
 
Achja. Momentan ist es sehr blöd, da es lange dauert und man auch nicht weiß wie lange noch. Hat einer ne idee wie ich einfach eine Fortschrittsanzeige angezeigt bekomme. Bietet da Indy was an?


Gruß

Morphie 29. Jul 2013 12:08

AW: Fremdes C# Steuern
 
Du hast Sir Rufos Frage noch nicht beantwortet...
Zitat:

Zitat von Sir Rufo (Beitrag 1222803)
Wie lange dauert denn der Vorgang mit dem beiliegenden Programm?
Geht das schneller?


achi 3.0 29. Jul 2013 16:03

AW: Fremdes C# Steuern
 
Sorry hatte die Frage wohl übersehen. Mit dem beiligendem Programm dauert es auch lange. Werde mal die Zeit stoppen um einen genauen vergleich zu machen.


Gruß

guinnes 29. Jul 2013 16:43

AW: Fremdes C# Steuern
 
Zitat:

Zitat von achi 3.0 (Beitrag 1222926)
Achja. Momentan ist es sehr blöd, da es lange dauert und man auch nicht weiß wie lange noch. Hat einer ne idee wie ich einfach eine Fortschrittsanzeige angezeigt bekomme. Bietet da Indy was an?

Ja, die Events OnWorkBegin, OnWork und OnWorkEnd


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:14 Uhr.
Seite 3 von 3     123   

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