AGB  ·  Datenschutz  ·  Impressum  







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

Pchar Rückgabe

Ein Thema von berbog · begonnen am 29. Dez 2002 · letzter Beitrag vom 30. Dez 2002
Antwort Antwort
Seite 1 von 3  1 23      
berbog

Registriert seit: 17. Dez 2002
Ort: Halver
12 Beiträge
 
Delphi 5 Professional
 
#1

Pchar Rückgabe

  Alt 29. Dez 2002, 12:02
Hallo ich habe ein Anfängerproblem.
Als Rückgabe aus einer Dll bekomme ich einen Wert mit Vorzeichen zurück (z.b. +0029) wie wandele ich diesen in einen Integer Wert um.
Danke im Voraus.
wer früher stirbt ist länger tod
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 29. Dez 2002, 12:30
Hm... Wenn's nicht PChar, sondern String wäre könntest du das mit StrToInt machen (funktioniert auch mit Vorzeichen)...

Chris
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#3
  Alt 29. Dez 2002, 13:18
Also bei mir funktionierts auch mit PChar:

Delphi-Quellcode:
var
  p: PChar;
  s: string;
  i: integer;
begin
  s := '+2345';
  p := PChar(s);
  i := StrToInt(p);

  Caption := IntToStr(i) //In der Caption stehts dann (bei +) ohne Vorzeichen
end;
Keinerlei Meckereien von Delphi
Gruß, Sebastian
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#4
  Alt 29. Dez 2002, 13:19
Ja gut.

Chris
  Mit Zitat antworten Zitat
berbog

Registriert seit: 17. Dez 2002
Ort: Halver
12 Beiträge
 
Delphi 5 Professional
 
#5
  Alt 29. Dez 2002, 13:25
Hallo Chris
Strtoint habe ich versucht, aber der compiler bringt mir eine Fehlermeldung (Im ProjektProjekt 1.exe ist eine Exception der Klasse EConvertError aufgetreten.Meldung "4|' ist kein gültiger Integer Wert'.) Dieser Wert wird mir aber vorher bei der Zeile label4.caption := (analog1) richtig mit +0029 angezeigt.Ich versuche diesen wert Im Diagramm (Chart) anzuzeigen.
wer früher stirbt ist länger tod
  Mit Zitat antworten Zitat
DerKapitalist

Registriert seit: 25. Dez 2002
37 Beiträge
 
#6
  Alt 29. Dez 2002, 13:36
Code:
var
 p: PChar;
 i: integer;
begin
  p := PChar(edit1.Text);
  i := StrToInt(p);
end;
Klappt bei mir auch, warum sollet es auch nicht gehen, aber:

"4|" ist nunmal kein Zahlenwert -> deine Funktion liefert dir einen string und keinen Zahlenwert. Poste mal bitte den gesamten relevanten Code.
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#7
  Alt 29. Dez 2002, 13:37
Hallo berbog, und wenn du mit string() typecastest?

Die Hilfe sagt aber das:

Zitat von Delphi Hilfe:
You can mix long strings (AnsiString values) and null-terminated strings (PChar values) in expressions and assignments, and you can pass PChar values to functions or procedures that take long-string parameters. The assignment S := P, where S is a string variable and P is a PChar expression, copies a null-terminated string into a long string.
In a binary operation, if one operand is a long string and the other a PChar, the PChar operand is converted to a long string.
Gruß, Sebastian
  Mit Zitat antworten Zitat
DerKapitalist

Registriert seit: 25. Dez 2002
37 Beiträge
 
#8
  Alt 29. Dez 2002, 13:41
das mein ich ja auch, ich denke nciht,dass das was mit pChar zu tun hat
  Mit Zitat antworten Zitat
Sebastian Nintemann
(Gast)

n/a Beiträge
 
#9
  Alt 29. Dez 2002, 13:51
Ja, das vermute ich auch.
Zitat von berbog:
Dieser Wert wird mir aber vorher bei der Zeile label4.caption := (analog1) richtig mit +0029 angezeigt
Wenn das so ist müss es doch funktionieren, stellst du zwischenzeitlich noch irgendwas mit dem PChar an? Du kannst ja mal ein bisschen Code posten bzw vorher nochmal prüfen, ob der String den du in Integer umwandeln willst auch wirklich eine gültige Zahl ist, sie wies aussieht siehts nämlich nicht so aus

Gruß, Sebastian
  Mit Zitat antworten Zitat
DerKapitalist

Registriert seit: 25. Dez 2002
37 Beiträge
 
#10
  Alt 29. Dez 2002, 13:55
ja, oder bist du sicher, dass deine DLL nicht zwischenzeitlich den PChar modifiziert? Bei Übergabe von PChars erhaellst du naemlich keine Kopie der Daten sondern das Original.
Oder vielleicht hast du auch nicht Thread-safe programmiert. naja, möglich wärs ja
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 23:56 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