Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Integer lesen, wie in C (https://www.delphipraxis.net/46680-integer-lesen-wie-c.html)

dizzy 30. Mai 2005 19:17

Re: Integer lesen, wie in C
 
Das geht imho von Hause aus, da Stings eh nichts anderes sind als Arrays.
Delphi-Quellcode:
var
  s, x: String;
begin
  x := s[1];
end;
In x steht dann das erste Zeichen von s.

sniper_w 30. Mai 2005 19:25

Re: Integer lesen, wie in C
 
In C macht man es z.b. so :
Code:
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int a;
    unsigned char *e;
   
    e = &a;
   
    scanf("%d", &a);
    printf("\n");
   
    int i;
    for(i=0;i<4;i++)
     printf("%d\n",e[i]);
 
  system("PAUSE");   
  return 0;
}

alzaimar 31. Mai 2005 17:08

Re: Integer lesen, wie in C
 
@dizzy: Du darfst Dich in Zukunft nicht mehr darauf verlassen, das ein String ein Array ist. Der Zugriff auf einzelne Zeichen per aString[aIndex] ist veraltet und sollte bedauerlicherweise nicht mehr verwendet werden. Der offizielle Weg ist über die Copy-Prozedur. Krank, nicht war? Speziell die Ansi- und WideStrings sind davon betroffen, IMHO Shortstrings, also per 'string[123]' deklarierte Variablen nicht.

Aber, so lange Du Tools schreibst, die mit der nächsten oder übernächsten Delphi-Version nicht mehr laufen sollen, ist das egal.

dizzy 1. Jun 2005 00:32

Re: Integer lesen, wie in C
 
:shock: Einen extra Funktionsaufruf dafür "verschwenden"? Selbst wenn es mit Blick auf Ansi/Unicode so gemacht ist, dann wäre ein Ansi-String ein array of Byte, und Unicode ein array of Word... Dafür erst aufwändig eine Funktion... *schüttel* :?


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

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