AGB  ·  Datenschutz  ·  Impressum  







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

2 PChar´s vergleichen

Ein Thema von sniper_w · begonnen am 16. Okt 2005 · letzter Beitrag vom 17. Okt 2005
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#1

2 PChar´s vergleichen

  Alt 16. Okt 2005, 23:34
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
  var a, b : PChar;
begin
 caption := edit1.Text[1]+ ' '+edit1.Text[2];
 a := @edit1.Text[1];
 b := @edit1.Text[2];
 Memo1.Lines.Add('a = '+a^+' '+inttostr(Cardinal(Addr(a^)))+' '+inttostr(Cardinal(a)));
 Memo1.Lines.Add('b = '+b^+' '+inttostr(Cardinal(b)));
 if a<b then
   Memo1.Lines.Add('a<b is true')
 else if a>b then
   Memo1.Lines.Add('a>b is true')
 else
   Memo1.Lines.Add('a=b is true');
end;
Wenn ich also a und b vergleiche, heisst das, es werden eigentlich die Speicheraddressen zum Auswertung gebracht...Habe ich das richtig verstanden ?
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#2

Re: 2 PChar´s vergleichen

  Alt 16. Okt 2005, 23:45
hast du.
du wuerdest somit identitaet statt gleichheit testen.

in c wuerde man strcmp() auf die beiden zeiger anwenden.
(pchars sind ja zeiger auf speicher, wo die eigentlichen zeichenketten liegen).
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: 2 PChar´s vergleichen

  Alt 16. Okt 2005, 23:53
Bist du sicher, dass sich das:
Delphi-Quellcode:
a := @edit1.Text[1];
b := @edit1.Text[2];
ausführen läßt, ohne dass du zuvor Speicher für die PChar Variablen a und b angefordert hast?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#4

Re: 2 PChar´s vergleichen

  Alt 16. Okt 2005, 23:56
100% sicher, denn denn Speicher ist schon da, ich weise es nur zu.
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#5

Re: 2 PChar´s vergleichen

  Alt 17. Okt 2005, 00:00
ein pchar ist nur ein zeiger. man kann ihn auf vorhandenen speicher zeigen lassen oder auf frisch angeforderten.
wer das wesen der pchars verstehen will, sollte sich unbedingt mit zeigern und den internen ablaeufen bei speichergeschichten beschaeftigen. eine portion C hilft auch.
Christoph
  Mit Zitat antworten Zitat
Basilikum

Registriert seit: 9. Aug 2003
389 Beiträge
 
Delphi 7 Professional
 
#6

Re: 2 PChar´s vergleichen

  Alt 17. Okt 2005, 00:15
die Aussage
Zitat von sniper_w:
100% sicher
finde ich recht mutig in diesem Zusammenhang...
TEdit.Text bzw TControl.GetText() gibt lediglich einen temporären String zurück... es ist also eine Frage der Zeit, bis der Pointer ins nichts zeigt....
  Mit Zitat antworten Zitat
Benutzerbild von sniper_w
sniper_w

Registriert seit: 12. Dez 2004
Ort: Wien, Österriech
893 Beiträge
 
Delphi 6 Enterprise
 
#7

Re: 2 PChar´s vergleichen

  Alt 17. Okt 2005, 00:18
Nein, da liegst du falsch.
Ich bin mir sicher, denn in diesem trivialem Beispiel ist Edit1.Text immer NICHT leer...
Katura Haris
Es (ein gutes Wort) ist wie ein guter Baum, dessen Wurzel fest ist und dessen Zweige in den Himmel reichen.
  Mit Zitat antworten Zitat
ripper8472

Registriert seit: 17. Aug 2003
275 Beiträge
 
#8

Re: 2 PChar´s vergleichen

  Alt 17. Okt 2005, 00:19
man kann aber davon ausgehen, dass fuer die zeit der ereignismethode sich nichts aendert...

hast aber recht, die strings koennen kommentarlos verschwinden und schon hat man lustige fehler.

edit: "leer" ist was anderes als "woanders"...
Christoph
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: 2 PChar´s vergleichen

  Alt 17. Okt 2005, 00:21
Zitat von ripper8472:
hast aber recht, die strings koennen kommentarlos verschwinden und schon hat man lustige fehler.
Und eben deshalb, sollte man sich angewöhnen es sicher zu lösen, sonst fällt masn nämlich irgendwann mal auf die Schnauze und weiß nicht, wo man sich die blutige Nase geholt hat.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von faux
faux

Registriert seit: 18. Apr 2004
Ort: Linz
2.044 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: 2 PChar´s vergleichen

  Alt 17. Okt 2005, 00:23
Ich frage mich die ganze Zeit schon, wieso du nicht einfach anstatt a>b zu schreiben, a^>b^ schreibst.
Faux Manuel
Wer weiß, dass er nichts weiß, weiß mehr, als der der nicht weiß, dass er nichts weiß.
GoTrillian
  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 22:57 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