Speicherbedarf Char

Getting started ... Alles für einen gelungenen Start.
12 Beiträge Seite 1 von 1
12 Beiträge Seite 1 von 1

Speicherbedarf Char

Beitrag von L0w-RiDer (Specialist / 155 / 21 / 1 ) » 15. Sep 2019 10:33

Hallo,

ich wollte mal ganz kurz fragen, weil ich es nicht gefunden habe.

Weiß jemand wie groß der Speicherbedarf für ein Char ist?? In Java sind es ja 2 Byte. Wie ist es denn in ABAP?? Und wie hoch wäre er für ein integer?

Danke


Re: Speicherbedarf Char

Beitrag von edwin (Specialist / 273 / 5 / 46 ) » 15. Sep 2019 21:24

Hi,

F1 im Abap Editor auf Type c, oder type i ... liefert dir die Antwort.

c: In Unicode-Systemen wird UTF-16 als System-Codepage verwendet und die Länge eines Zeichens ist zwei Byte.
i : 4-Byte-Integer
p : 1-16 Bytes
f : 8 Bytes
decfloat16 : 8 Bytes
decfloat34 : 16 Bytes

/Edwin

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Specialist / 155 / 21 / 1 ) » 16. Sep 2019 09:18

Danke schon mal.

Ich habe gerade nachgeschaut. Wir haben kein Unicode-System und somit ist es nur 1 Byte.

Re: Speicherbedarf Char

Beitrag von edwin (Specialist / 273 / 5 / 46 ) » 16. Sep 2019 14:42

du kannst auch das hier verwenden:

cl_abap_char_utilities=>charsize

das liefert dir die Länge eines Char

/Edwin

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Specialist / 155 / 21 / 1 ) » 15. Okt 2019 10:56

Versteh ich das eigentlich dann so richtig, dass wenn ich wie folgt eine Variable oder ein Feld in einer internen Tabelle deklariere:

lv_var1(8) type c. <---- in diesem Fall verbraucht es 8 Byte in einem nicht Unicodefähigen System.

lv_var1(8) type d. <------ in diesem Fall verbraucht es 64 Byte, da Dats 8 Byte verbraucht.

Wäre das so richtig??

Re: Speicherbedarf Char

Beitrag von a-dead-trousers (Top Expert / 3264 / 86 / 827 ) » 15. Okt 2019 11:11

L0w-RiDer hat geschrieben:
15. Okt 2019 10:56
lv_var1(8) type d. <------ in diesem Fall verbraucht es 64 Byte, da Dats 8 Byte verbraucht.
Wäre das so richtig??
Ne, D(ats) braucht immer nur 8 Bytes. Die Längenangabe hier ist irreführend. Wenn man etwas anderes als 8 nimmt meckert der Kompiler. Ergo ist die Angabe optional und kann auch weggelassen werden, womit wir wieder bei den 8 Bytes wären.
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Specialist / 155 / 21 / 1 ) » 15. Okt 2019 11:33

hmmm

und wenn ich einen Integer als Datentyp nehmen z.B.

lv_var1(40) type i. <--- dann wäre es auch nur 4 Byte, egal wie lang ich es mache??

Re: Speicherbedarf Char

Beitrag von schick (ForumUser / 49 / 5 / 13 ) » 15. Okt 2019 11:45

L0w-RiDer hat geschrieben:
15. Okt 2019 11:33
hmmm

und wenn ich einen Integer als Datentyp nehmen z.B.

lv_var1(40) type i. <--- dann wäre es auch nur 4 Byte, egal wie lang ich es mache??
Da sollte folgende Meldung kommen: "Eine Längenangabe hat im Zusammenhang mit Typ 'I' keine Wirkung".

Integer ist in ABAP wie folgt ausgeprägt (siehe Doku: Eingebaute Typen):

i -2.147.483.648 bis +2.147.483.647
int8 -9.223.372.036.854.775.808 bis +9.223.372.036.854.775.807

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Specialist / 155 / 21 / 1 ) » 15. Okt 2019 13:01

es verbraucht somit immer 4 Byte, egal ob ich der Variabel den Wert 2 zuweise oder 2.000.000, oder?

Re: Speicherbedarf Char

Beitrag von a-dead-trousers (Top Expert / 3264 / 86 / 827 ) » 15. Okt 2019 13:39

L0w-RiDer hat geschrieben:
15. Okt 2019 13:01
es verbraucht somit immer 4 Byte, egal ob ich der Variabel den Wert 2 zuweise oder 2.000.000, oder?
Ja.

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
L0w-RiDer (15. Okt 2019 14:02)

Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.07
Basis: 7.40

Re: Speicherbedarf Char

Beitrag von L0w-RiDer (Specialist / 155 / 21 / 1 ) » 15. Okt 2019 14:02

Vielen Dank :).

Re: Speicherbedarf Char

Beitrag von fr-g (ForumUser / 50 / 5 / 16 ) » 15. Okt 2019 17:05

Ich glaube, es wurde hier noch nicht erwähnt. Du kannst ja so ganz einfach feststellen, wieviele Bytes ein Feld hat (auf deinem jeweiligen System, Unicode oder nicht):

Code: Alles auswählen.

  
  DATA char TYPE c LENGTH 3 VALUE 'abc'.
  DATA dats TYPE d VALUE '19851003'.
  DATA len TYPE i.

  DESCRIBE FIELD char LENGTH len IN BYTE MODE. 
  DESCRIBE FIELD dats LENGTH len IN BYTE MODE.

Seite 1 von 1

Aktuelle Forenbeiträge

Web Service Restful API
vor 11 Stunden von Tron 2 / 32
Entwurfsmuster in ABAP / OO
vor 2 Tagen von Maximus 16 / 2132
VA01, Kundenauftragserfassung Preisdatum
vor 2 Tagen von SAP_ENTWICKLER 1 / 53
Rabax Fehlermeldung
vor 2 Tagen von zzcpak 2 / 84
Aufgabe Programm/- Tabellenerstellung
vor 2 Tagen von SaskuAc 3 / 84

Unbeantwortete Forenbeiträge

VA01, Kundenauftragserfassung Preisdatum
vor 2 Tagen von SAP_ENTWICKLER 1 / 53
HANA Audit Trail
vor einer Woche von JohnLocklay 1 / 97
Halber Tag Urlaub
vor einer Woche von SO4SAP 1 / 61
Funktionsbausteine BAPI_INCOMINGINVOICE*****
vor einer Woche von Rabea1103 1 / 70
S4/HANA in der Cloud / 14 Tage Trial
vor 3 Wochen von Tron 1 / 101