Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi c code nach delphui übersetzen (https://www.delphipraxis.net/46365-c-code-nach-delphui-uebersetzen.html)

Klaus-B.Schmidt 23. Mai 2005 19:43


c code nach delphui übersetzen
 
hallo,
ich hab eine frage oder auch ein problem, und den einzigen ausweg, den ich sehe ist, diese
beiden c codes in die delphi sprache umzussetzen, sodass man sie in programmen verwenden kann.
da iuch eine ahnuzng von habe, frage ich euch
-----------------------
code 1
-----------------------
Code:
include <stdio.h>
int main()
{
// convert text file to plp
char c;
c = getchar();
while(!feof(stdin)){
putchar(c); // copy char to output
putchar('\0'); // append zero after each char
c = getchar();
}
}
-----------------------
code 2
-----------------------

CODE
Code:
#include <stdio.h>
int main()
{
// convert plp file to text
char c;
c = getchar();
while(!feof(stdin)) {
if(c!='\0') // filter zeros
putchar(c);
c = getchar();
}
}

besten dank für eure bemühungen .

MfG
Klaus

[edit=alcaeus]Code-Tags eingefügt. Beim nächsten Mal bitte selbst machen. Danke :) Mfg, alcaeus[/edit]

Waldteufel 23. Mai 2005 19:51

Re: c code nach delphui übersetzen
 
Hi.

Delphi-Quellcode:
{code 1}

program code1;

uses
  System;

var
  c : char;
begin
  // convert text file to plp
  Read(c);
  while c <> #26 do
  begin
    Write(c, #0); // copy char to output + append zero after each char
    Read(c);
  end;
end.
Delphi-Quellcode:
program code2;

uses
  System;

var
  c : char;
begin
  // convert plp file to text
  Read(c);
  while c <> #26 do
  begin
    if c <> #0 then // filter zeros
      Write(c);
    Read(c);
  end;
end.
[edit] Das ist eine 1:1 Übersetzung. Für jeden C-Befehl einen Delphi-Befehl... Es geht sicherlich eleganter... ;-) [/edit]

Klaus-B.Schmidt 23. Mai 2005 20:03

Re: c code nach delphui übersetzen
 
erstmal bedank ich mich für die schnelle antwort, bloß hab ich keine ahnung, wie ich dies in ein ereignis einbinde, und als quelle bzw. ziel jeweils eine datei benutze.

MfG
Klaus

Waldteufel 23. Mai 2005 20:13

Re: c code nach delphui übersetzen
 
Hi.

z.B. so:

Delphi-Quellcode:

{ in Edit1 steht der Name der Eingabedatei }
{ in Edit2 steht der Name der Ausgabedatei }

procedure TForm1.Button1OnClick(Sender : TObject); // umwandeln
var
  c : char;
  fin, fout : file;
begin
  Assign(fin, Edit1.Text);
  ReSet(fin);
  Assign(fout, Edit2.Text);
  ReWrite(fout);
  // convert text file to plp
  Read(fin, c);
  while c <> #26 do
  begin
    Write(fout, c, #0); // copy char to output + append zero after each char
    Read(fin, c);
  end;
  Close(fin);
  Close(fout);
end;

procedure TForm1.Button2OnClick(Sender : TObject); // zurückwandeln
var
  c : char;
  fin, fout : file;
begin
  Assign(fin, Edit1.Text);
  ReSet(fin);
  Assign(fout, Edit2.Text);
  ReWrite(fout);
  // convert plp file to text
  Read(fin, c);
  while c <> #26 do
  begin
    if c <> #0 then // filter zeros
      Write(fout, c);
    Read(fin, c);
  end;
  Close(fin);
  Close(fout);
end;
Warnung: Ungetestet!

Klaus-B.Schmidt 23. Mai 2005 20:47

Re: c code nach delphui übersetzen
 
so, hab jetzt folgenden code :
Delphi-Quellcode:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Edit1: TEdit;
    Edit2: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
   
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.Button1Click(Sender: TObject);
var
  c : char;
  fin, fout : file;
begin
  Assign(fin, Edit1.Text);
  ReSet(fin);
  Assign(fout, Edit2.Text);
  ReWrite(fout);
  // convert plp file to text
  Read(fin, c);
  while c <> #26 do
  begin
    if c <> #0 then // filter zeros
      Write(fout, c);
    Read(fin, c);
  end;
  Close(fin);
  Close(fout);


end;

end.
und bekomme folgende fehler :
Code:
[Fehler] Unit1.pas(36): Inkompatible Typen: 'TPersistent' und 'file'
[Fehler] Unit1.pas(38): Inkompatible Typen: 'TPersistent' und 'file'
[Fehler] Unit1.pas(41): Inkompatible Typen: 'procedure, untyped pointer or untyped parameter' und 'Char'
[Fehler] Unit1.pas(45): Inkompatible Typen: 'procedure, untyped pointer or untyped parameter' und 'Char'
[Fehler] Unit1.pas(46): Inkompatible Typen: 'procedure, untyped pointer or untyped parameter' und 'Char'
[Fehler] Unit1.pas(48): Zu viele Parameter
[Fehler] Unit1.pas(49): Zu viele Parameter
[Fataler Fehler] Project2.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden

sECuRE 23. Mai 2005 21:07

Re: c code nach delphui übersetzen
 
Hi,

probier's mal mit TextFile statt File und ReadLn statt Read ;)

cu

marabu 23. Mai 2005 21:29

Re: c code nach delphui übersetzen
 
Was du da machst, das riecht nach Code-Konvertierung von ASCII 7-bit nach Unicode UTF-16. Dafür schreibt man kein Programm, sondern nimmt GNU RECODE - oder sehe ich das falsch?

Grüße vom marabu

Link eingebaut

Phistev 23. Mai 2005 21:39

Re: c code nach delphui übersetzen
 
Assign() weist ein Objekt einem anderen zu; Close() schließt das Formular. Die hier korrekten Befehle heißt AssignFile(...) und CloseFile(...).

Klaus-B.Schmidt 24. Mai 2005 12:44

Re: c code nach delphui übersetzen
 
habs jetzt geändert, bekomme aber immer noch filgende fehler:
Code:
  [Fehler] Unit1.pas(38): Inkompatible Typen: 'procedure, untyped pointer or untyped parameter' und 'Char'
  [Fehler] Unit1.pas(42): Inkompatible Typen: 'procedure, untyped pointer or untyped parameter' und 'Char'
  [Fehler] Unit1.pas(43): Inkompatible Typen: 'procedure, untyped pointer or untyped parameter' und 'Char'
  [Fataler Fehler] Project1.dpr(5): Verwendete Unit 'Unit1.pas' kann nicht compiliert werden
Edit: dürften die gleiche fehler sein, die beim ersten versuch aufgetreten sind, nur die zeilen sind durch neues proj. verschoben.


MfG
Klaus

marabu 24. Mai 2005 13:53

Re: c code nach delphui übersetzen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Du magst RECODE nicht, stimmt's?

Anbei eine Demo, wie es mit Delphi funktionieren könnte.

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:20 Uhr.
Seite 1 von 2  1 2      

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