Laden...

Forenbeiträge von xpate Ingesamt 5 Beiträge

28.03.2007 - 14:42 Uhr

Dann muss ich aber doch long als Typ angeben und nicht int oder? Weil .Length vom Typ long ist.

28.03.2007 - 14:24 Uhr

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.

28.03.2007 - 12:52 Uhr

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

26.03.2007 - 14:29 Uhr

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.

26.03.2007 - 14:22 Uhr

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?