Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi.NET -> C# >> Problem mit Übersetzung (https://www.delphipraxis.net/49819-delphi-net-c-problem-mit-uebersetzung.html)

Speedmaster 16. Jul 2005 12:07


Delphi.NET -> C# >> Problem mit Übersetzung
 
Habe ein Problem beim übersetzen einer selbstgeschriebenen Delphi-Funktion nach C#.

Aber seht selbst( Delphi Code funktioniert einwandfrei ):

Delphi:
Delphi-Quellcode:
procedure TeLog.Log;
var
  LogF: System.IO.StreamWriter;
  i:   integer;
begin
  LogF := &File.CreateText(LogNameS + '.log');
  // Stream initialisieren
  for i := 0 to high(LogA) do
    LogF.WriteLine(LogA[i]);
  // Gesammte Logdatei Speichern
  LogF.Flush;
  // Logdatei ausgeben
end;
C#:
Code:
      public void SaveLog( string Path )
      {
         // Speichert die Log nicht in dem Konstruktor angegebenen Pfad
         // sondern in dem Pfad der als Parameter angegeben ist
         // Speichert die Log im angegebenen Pfad
         System.IO.StreamWriter nText;
         nText = File.CreateText(Path + LogName + ".log");
         // StreamWriter initalisieren
         int i;
         for (i = 0;i==this.Lines.Count;i++)
         {
            nText.Write(Lines[i]);
         }
         nText.Flush();
      }

thx

Speedmaster

jbg 16. Jul 2005 12:17

Re: Delphi.NET -> C# >> Problem mit Übersetzung
 
Zitat:

for (i = 0;i==this.Lines.Count;i++)
Wie war nochmal der zweite Ausdruck bei for ? Das == ist hier vollkommen falsch.

Speedmaster 16. Jul 2005 12:26

Re: Delphi.NET -> C# >> Problem mit Übersetzung
 
Zitat:

Zitat von jbg
Zitat:

for (i = 0;i==this.Lines.Count;i++)
Wie war nochmal der zweite Ausdruck bei for ? Das == ist hier vollkommen falsch.

Zweite Ausdruck ist schon richtig, das ist die Abfrage, b.z.w. sollte es sein nach .NET SDK Hilfe!

Robert_G 16. Jul 2005 12:39

Re: Delphi.NET -> C# >> Problem mit Übersetzung
 
Zitat:

Zitat von Speedmaster
Zweite Ausdruck ist schon richtig, das ist die Abfrage, b.z.w. sollte es sein nach .NET SDK Hilfe!

Kann gar nicht sein. Entweder du hast eine andere C# Referenz als ich, oder ein anderes C#. :mrgreen:
Der zweite Paramter prüft, ob die Schleife ein weiteres Mal durchlaufen werden soll.
Bei dir kommt es wohl nie dazu... (Außer Count ist 0 :mrgreen: )
Außerdem wirst du hier kein for brauchen. foreach ist doch viel schöner. ;)
Code:
public void SaveLog(string path)
{
   using (FileStream fs = new FileStream(string.Format("{0}{1}.log",
                                                       path,
                                                       FileName),
                                         FileMode.OpenOrCreate))
   {
      TextWriter writer = new StreamWriter(fs);
      foreach (string line in Lines)
      {
         writer.Write(line);
      }
      writer.Flush();
   }
}

phXql 16. Jul 2005 14:22

Re: Delphi.NET -> C# >> Problem mit Übersetzung
 
Zitat:

Zitat von Speedmaster
Zitat:

Zitat von jbg
Zitat:

for (i = 0;i==this.Lines.Count;i++)
Wie war nochmal der zweite Ausdruck bei for ? Das == ist hier vollkommen falsch.

Zweite Ausdruck ist schon richtig, das ist die Abfrage, b.z.w. sollte es sein nach .NET SDK Hilfe!

bei delphi ist ein

"for ... to ..."

also muss es in c# doch "i < ..." sein

Speedmaster 16. Jul 2005 14:53

Re: Delphi.NET -> C# >> Problem mit Übersetzung
 
So stehts drin:

Code:
/* i is set to 0 at start, and is incremented by 1 at the end
of each iteration. Loop terminates when i is not less
than 10 before a loop iteration. */
var myarray = new Array();
for (i = 0; i < 10; i++) {
   myarray[i] = i;
}

phXql 16. Jul 2005 17:57

Re: Delphi.NET -> C# >> Problem mit Übersetzung
 
Zitat:

Zitat von Speedmaster
So stehts drin:

Code:
/* i is set to 0 at start, and is incremented by 1 at the end
of each iteration. Loop terminates when i is not less
than 10 before a loop iteration. */
var myarray = new Array();
for (i = 0; i < 10; i++) {
   myarray[i] = i;
}

is schon richtig, dass die 2te sektion die bedingung is, aber du hättest statt dem vergleichen == ein kleiner < nehmen müssen! genauso isses in der demo doch auch!

nailor 16. Jul 2005 18:16

Re: Delphi.NET -> C# >> Problem mit Übersetzung
 
Zitat:

Zitat von Robert_G
Außerdem wirst du hier kein for brauchen. foreach ist doch viel schöner. ;)

recht hatter, der kollege.


Alle Zeitangaben in WEZ +1. Es ist jetzt 07:47 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