AGB  ·  Datenschutz  ·  Impressum  







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

AnsiChar oder pAnsiChar

Ein Thema von Pseudemys Nelsoni · begonnen am 23. Aug 2003 · letzter Beitrag vom 23. Aug 2003
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#1

AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 15:58
hoi

in der Application.MessageBox muss man ja als erstes die message der messagebox angeben...aber wieso ist der typ pAnsiChar??? und nciht string? was sind das für unterschiede?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#2

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:01
Wieso? Das ist recht einfach. Die Deklaration stammt von MS und die arbeiten gerne mit Pointern.

AnsiString bzw. String sind in Delphi Pointer auf eine Pascal-/Delphi-spezifische Struktur, welche anders ist als die MS-PChar (PAnsiChar) Pointer.

Code:
PChar(String) -> Pointer auf das erste Byte des Strings, inklusive einer aufwendigen Kopieraktion.

Wenn der string garantiert nicht geändert wird, ist es besser mit

@String[1]

zu arbeiten.
......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:11
Oder:
@(String1+String2)[1] Oder:
pointer(String1+String2)
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#4

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:12
aber wenn ich "Application.MessageBox('blabla Text', 'fehler', mb_ok);"

dann sieht ersteres für mich wie ein string aus, ich schnall jetzt einfach nur nicht was der unterschied ist
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#5

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:13
Delphi kennt den Unterschied und ist an dieser Stelle ein wenig flexibel, damit Du nicht einen extra Type-Cast machen musst. Verwirrend, aber praktisch

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#6

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:16
ok, danke für die hilfe, das kapier ich noch nicht
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:20
Silent, da gibt es nicht viel zu verstehen. Delphi nimmt Dir oft viel Arbeit ab, in dem es verschiedene Dinge automatisch erledigt. Das macht Dir das Leben leichter. Wenn Du einen konstanten String eingibst, an einer Stelle wo die Deklaration einen PChar Wert erwartet, dann über gibt Delphi automatisch den korrekten Pointer um einen PChar daraus zu machen.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Benutzerbild von Pseudemys Nelsoni
Pseudemys Nelsoni

Registriert seit: 24. Dez 2002
Ort: Hamburg-Harburg
3.551 Beiträge
 
#8

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:23
danke für die erklärung , ich frage mich nur wieso Char und nicht String erwartet wird?
Mario
MSN: cyanide@ccode.de
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
 
Delphi 11 Alexandria
 
#9

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:27
Moin Silent,

ein String ist ein array of char.

@sakura:
Zitat von sakura:
Die Deklaration stammt von MS und die arbeiten gerne mit Pointern.
was bleibt ihnen bie C(++) auch anderes übrig für Werte > 32 Bit
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#10

Re: AnsiChar oder pAnsiChar

  Alt 23. Aug 2003, 16:27
Ah, ich sehe Deine Verwirrung und will mich um mehr Licht kümmern

Es wird ja nicht ein Char, sondern ein PChar erwartet. Ein Char ist, wie Du weisst ein einzelnes Zeichen. PChar ist ein Pointer auf das erste Zeichen in einem Array "vieler" Zeichen, wo das letzte Zeichen ein Nullwert (#0) ist. In Delphi enden alle Strings automatisch auf #0, um solche Casts auch leichter zu gestallten.

PChar müsstest Du Dir am Besten als einen Pointer auf @CharArray[0] vorstellen, wobei CharArray als array of Char definiert ist. (Nicht ganz korrekt, aber zur Veranschaulichung sollte es reichen)

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  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 10:50 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