Dann muss ich aber doch long als Typ angeben und nicht int oder? Weil .Length vom Typ long ist.
Danke schon einmal für eure Antworten.
Und der Code ist mit Delphi 7 geschrieben worden. Ende 2004 habe ich das Programm geschrieben.
Die Methode ist auch dafür geschrieben worden, die Zeichenlänge auszulesen. Sorry falls das falsch rüber gekommen sein sollte.
Ich werde mal eure Tipps befolgen und gebe Rückmeldung, ob es geklappt hat.
So der Teil mit dem Event funktioniert nun auch wunderbar.
Habe jetzt auch so ziemlich alles in C# realisiert, allerdings fehlt mir noch eine Funktion, die ich nicht so ganz auf die Reihe bekomme.
Hier seht ihr den alten, fertigen Delphi Code
function TForm1.GetFileSize(filename:string):integer;
var
F: TextFile;
s:string;
count : integer;
begin
AssignFile(F, filename);
Reset(F);
count := 0;
if IOResult = 0 then
begin
while not eof(F) do
begin
Readln(F, s);
count := count + length(s);
end;
end;
result := count;
CloseFile(F);
end;
Das hier ist mein C# Code. Noch nicht viel, ich weiß 😉
public int GetFileSize(string filename)
{
StreamReader sr = new StreamReader("GetFileSize");
String line;
string s;
int count;
if(IOException == 0)
{
while (((line = sr.ReadLine()) !=null) && (error = false))
{
}
}
}
Habe nun folgende konkrete Probleme.
IOResult wird ja scheinbar in C# mit IO Exception gelöst. Funktioniert bei mir aber nicht, weil ich es wie eine Variable benutzte. Jemand dazu ein Lösung?
AssignFile bekomme ich auch nicht umgesetzt. Ebenfalls Reset. Wie ich die eingebettenen Ausdrücke in der while Schleife umsetze, ist mir leider auch noch ziemlich schleierhaft.
Hoffe ihr könnt mir dabei helfen.
Danke und Gruß Jan
Der Teil mit der while Schleife funktioniert.
Danke dafür schon einmal.
Den Rest werde ich nachher mal testen.
Edit: Ich sende der Medienbox eine Intel Hex Zeile, an der die MB erkennt, dass als nächstes eine Firmware kommt.
Die MB hat dann 3Sek zeit um zu antworten.
Das ist in etwa die grobe Funktion.
Ich weiß, dass das nicht optimal gelöst ist. Ist auch schon recht alt der Code.
Hallo
Ich hoffe ich bin hier im richtigen Unterforum gelandet.
Ich schreibe zur Zeit mein Programm, mit dem ich Firmware auf eine Medienbox spiele, von Delphi in C# .Net um.
Dieser Code bereitet mir Probleme:
function TForm1.WarteAufQuittung:boolean;
begin
FTimeout := false;
Timer1.Enabled := false;
Timer1.Interval := 3000;
Timer1.Enabled := true;
while (not FTimeout) and (not FRcvFlag) do
Application.ProcessMessages;
Timer1.Enabled := false;
if FTimeOut = true then
result := false
else
begin
if RcvBuffer[0] = char($0d) then
result := true
else
result := false;
end;
end;
Ich habe ja im Anweisungsblock der while Schleife zwei Anweisungen.
Weiß jemand von euch wie ich das in C# realisieren kann?
Und hat jemand evtl. auch eine Ahnung, wie das "result" Gegenstück in C# heißt?