Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Übersetzung von einem kurzen c code (https://www.delphipraxis.net/86925-uebersetzung-von-einem-kurzen-c-code.html)

Nicodius 21. Feb 2007 09:01


Übersetzung von einem kurzen c code
 
Hi leute ich hab leider ein Problem.

Mein Chef hat mir vorgestern in C den code zum speichern der Daten, die das Programm das ich programmierer verarbeitet, gegeben.
Ich habe leider keine ahnung von c bzw wie man das in Delphi umsetzt.

ich hab folgendenen code

Code:
typedef struct {

int vtjahr;
int vtproz[12]
} Vert_Ent;

typedef struct {

char st_bez[32];
int st_jahr[12];
char st_vert[12];
long st_aufk[12]
} Steuer;

typedef struct {
char und_bez[32];
Steuer und_st[32];
} Modell;

struct {
char Vert_ast[32][24];
Vert_ent vert_datum[32];
Modell mod[16]
} Alles;

das sind wahrscheinlich records mit arrays oder?

und wie schaut das in Delphi aus bzw wie speicher ich dann die daten? mit assign oder?


wäre wirklich sehr nett könntet ihr mir in dieser Sache helfen


lg Nico

Luckie 21. Feb 2007 09:21

Re: Übersetzung von einem kurzen c code
 
structs sind records in Delphi.

Nicodius 21. Feb 2007 09:27

Re: Übersetzung von einem kurzen c code
 
ok vielen dank schonmal :)

yörsch 21. Feb 2007 09:49

Re: Übersetzung von einem kurzen c code
 
versuchs mal damit
Delphi-Quellcode:
Vert_Ent = record
  vtjahr : Integer;
  vtproz : array [0..11] of Integer;
end;

Steuer = record
  st_bez : array [0..31] of char;
  st_jahr : array [0..11] of Integer;
  st_vert : array [0..11] of char;
  st_aufk : array [0..11] of longWord;
end;

Modell = record
  und_bez : array [0..31] of char;
  und_st : array [0..31] of Steuer;
end;


Alles= record
  Vert_ast : array [0..31,0..23] of char;
  vert_datum : array [0..31] of Vert_ent;
  mod_ : array [0..15] of Modell; // mod ist ein reserviertes wort! 
end;

Matze 21. Feb 2007 09:51

Re: Übersetzung von einem kurzen c code
 
Delphi-Quellcode:
st_bez : array [0..31] of char;
Ist das in C nicht so, dass es keine Strings gibt und man daher mit "Array of Char" arbeiten muss. Ich hätte gedacht, das geht in Delphi einfach so, es kann aber auch sein, dass ich gerade irgendetwas durcheinanderbringe.

Delphi-Quellcode:
st_bez: string;

Nicodius 21. Feb 2007 09:55

Re: Übersetzung von einem kurzen c code
 
genau wegen solchen kleinigkeiten frag ich euch *gg*
das wird dann bedeuten dass der string aber auch nur 31 zeichen lang sein darf oder? also [30] oder?

vielen dank an alle ich probier das mal so aus :)

lg Nico

TeronG 21. Feb 2007 09:58

Re: Übersetzung von einem kurzen c code
 
Manchmal ist es aber aus Gründen der Kompatibilität besser auf Generische typen (string, integer, ...) zu verzichten ....


Zitat:

Zitat von OH
Das reservierte Wort string funktioniert wie ein generischer Typbezeichner: ....


himitsu 21. Feb 2007 10:04

Re: Übersetzung von einem kurzen c code
 
Zitat:

Zitat von Matze
Ist das in C nicht so, dass es keine Strings gibt und man daher mit "Array of Char" arbeiten muss. Ich hätte gedacht, das geht in Delphi einfach so, es kann aber auch sein, dass ich gerade irgendetwas durcheinanderbringe.

Nein, ist es nicht.

Ein String in Delphi ist ein Pointer auf eine StringStruktur (mit Refferenzzähler, Langenangabe und den Stringdaten selber).

Ein Delphi-Referenz durchsuchenShortString kommt den CharArray noch am nächsten, außer das dort noch ein Längenbyte am Anfang steht.

Delphi-Quellcode:
String[32]
wäre dann sozusagen dieses
Delphi-Quellcode:
Record
  StrLen: Byte; // welches im ShortString über xyz[0] lesbar wäre
  Data: Array[1..32] of Char;
End;
Code:
struct { 
  byte strLen;
  char data[32];
}

yörsch 21. Feb 2007 10:13

Re: Übersetzung von einem kurzen c code
 
ob das funktioniert was ich geschrieben hab weiss ich nicht...
aber du siehst ja was beim debuggen un die struktur geschrieben wird...

Matze 21. Feb 2007 10:14

Re: Übersetzung von einem kurzen c code
 
@himi: Ah wieder was gelernt, danke. Und Nico sicher auch. :)


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