AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Array index aus @ArrayElement bestimmen

Ein Thema von mentaltec · begonnen am 1. Feb 2013 · letzter Beitrag vom 3. Feb 2013
Antwort Antwort
Seite 1 von 2  1 2      
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#1

Array index aus @ArrayElement bestimmen

  Alt 1. Feb 2013, 22:35
Delphi-Version: 5
sorry, ich steh grad auf'm Schlauch

gabs bei Delphi die Möglichkeit den Index eines Elements aus dessen Adresse zu ermitteln (dyn. Array)

so C-like :: idx := pItem - @Items[0]; ??
  Mit Zitat antworten Zitat
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#2

AW: Array index aus @ArrayElement bestimmen

  Alt 1. Feb 2013, 22:55
jaja, Selbstantwort

nicht schön, aber geht ::

idx := (PANSIChar(pItem) - PANSIChar(@Items[0])) div sizeof(TItem);
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#3

AW: Array index aus @ArrayElement bestimmen

  Alt 1. Feb 2013, 23:31
Hallo,

Zitat:
nicht schön, aber geht ::
Schönheit liegt immer im Auge des Betrachters.

idx := (Integer (pItem) - Integer (@Items[0])) div SizeOf (TItem);
geht auch

Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#4

AW: Array index aus @ArrayElement bestimmen

  Alt 2. Feb 2013, 07:34
so C-like :: idx := pItem - @Items[0]; ??
Stimmt doch nur für Byte-Arrays, oder? Für alle anderen Arrays musst Du doch auch in C so rechnen, wie in Delphi.
  Mit Zitat antworten Zitat
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#5

AW: Array index aus @ArrayElement bestimmen

  Alt 2. Feb 2013, 08:36
idx := (Integer (pItem) - Integer (@Items[0])) div SizeOf (TItem);
ok, und was, wenn sizeof(pointer) <> sizeof(integer) ?

Gruss zurück
  Mit Zitat antworten Zitat
mentaltec

Registriert seit: 28. Sep 2012
60 Beiträge
 
#6

AW: Array index aus @ArrayElement bestimmen

  Alt 2. Feb 2013, 08:45
nö, ne "ordentliche" Programmiersprache kann das

mit (pItem + 2)-> kann man dann z.B. auf das übernächste Element zugreifen
oder was in Schleifen gern gemacht wird :
(pItem++)-> oder auch (++pItem)->

schönes WE

Geändert von mentaltec ( 2. Feb 2013 um 08:58 Uhr)
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#7

AW: Array index aus @ArrayElement bestimmen

  Alt 2. Feb 2013, 09:43
nö, ne "ordentliche" Programmiersprache kann das
Falsch. Ein ordentlicher Makroassembler (aka 'C') kann das.

Eine ordentliche Programmiersprache kommt ohne Pointer aus. In 'C' hat man aber keine andere Wahl, als mit Pointern zu arbeiten, und dann gewöhnt man sich eben dran.

Ein Koch, der nur mit Tütengewürzen arbeitet, rafft eben einfach nicht, das es besser geht.

Hat was mit dem sprichwörtlichen Tellerrand zu tun.

Ach, und ganz so blöd ist Delphi nun auch wieder nicht: inc(pItem) bewegt pItem zum nächsten Element.

So mit das Einzige, was Du mit Delphi ggü C gottseidank nicht hinbekommst, ist, ein ganzes Programm in einer Zeile unterzubringen.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.542 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Array index aus @ArrayElement bestimmen

  Alt 2. Feb 2013, 10:18
So mit das Einzige, was Du mit Delphi ggü C gottseidank nicht hinbekommst, ist, ein ganzes Programm in einer Zeile unterzubringen.
program OneLine; {$APPTYPE CONSOLE} begin writeln('Hallo Welt'); readln; end.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Furtbichler
(Gast)

n/a Beiträge
 
#9

AW: Array index aus @ArrayElement bestimmen

  Alt 2. Feb 2013, 13:58
So mit das Einzige, was Du mit Delphi ggü C gottseidank nicht hinbekommst, ist, ein ganzes Programm in einer Zeile unterzubringen.
program OneLine; {$APPTYPE CONSOLE} begin writeln('Hallo Welt'); readln; end.
Spielverderber. Ich meinte doch ohne Semikolon.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#10

AW: Array index aus @ArrayElement bestimmen

  Alt 2. Feb 2013, 23:35
Kannst Du haben:
{$APPTYPE CONSOLE} begin writeln('Hello World') end. Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:09 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