AGB  ·  Datenschutz  ·  Impressum  







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

Stringreplace - Zugriffsverletzung

Ein Thema von gordenfreeman2 · begonnen am 12. Okt 2006 · letzter Beitrag vom 12. Okt 2006
Antwort Antwort
gordenfreeman2

Registriert seit: 17. Mai 2004
60 Beiträge
 
Delphi 6 Enterprise
 
#1

Stringreplace - Zugriffsverletzung

  Alt 12. Okt 2006, 20:04
Hallo Leute, ich verstehe die welt nicht mehr, folgendes Problem habe ich:

Ich habe hier zwei Funktionen in einer DLL, die mir das übergebene Datum in Tag, Monat, Jahr aufspalten.

Die Funktion getMonat funktioniert auch. Aber bei der Funktion getJahr, sobald ich stringgreplace aufrufe und den Wert zurückgebe bekomme ich eine Zugriffsverletzung und ich weiß beim Teufel nicht warum. Was mache ich in der Funktion falsch?

Delphi-Quellcode:
function getMonat(date: TDate): string;stdcall;
var
  datum: pchar;
  zw,zw1,zw2,zw3: pchar;
  z,z1,z2,z3: string;
  monat: string;
begin
  datum := pchar(datetostr(date));
  zw := strpos(datum,'.');
  z := stringreplace(zw,'.','',[]);
  zw2 := strpos(pchar(z),'.');
  z1 := stringreplace(z,zw2,'',[]);
  result := z1;
end;

function getJahr(tagmonat: string): string;stdcall;
var
  datum: string;
  date: TDate;
  z: string;
begin
// datum := pchar(datetostr(date));
  datum := datetostr(date);

  z := stringreplace('KAKAKAK','sdfsadfsdf','assaas',[]);
  result := z;
end;
Bitte um Hilfe danke
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Stringreplace - Zugriffsverletzung

  Alt 12. Okt 2006, 20:10
Warum verwendest du nicht DecodeDate?

Zitat:
z := stringreplace('KAKAKAK','sdfsadfsdf','assaas',[]);
???
Markus Kinzler
  Mit Zitat antworten Zitat
gordenfreeman2

Registriert seit: 17. Mai 2004
60 Beiträge
 
Delphi 6 Enterprise
 
#3

Re: Stringreplace - Zugriffsverletzung

  Alt 12. Okt 2006, 20:12
Tja gute Frage war mir bis dato nicht bekannt. Aber zum meinem Problem was mache ich falsch????

Das war jetzt nur ein Beispiel, aber das Beispiel funktioniert ja auch nicht, es ist mir klar das hier nichts rauskommt.

Aber warum bekomme ich eine Zugriffsverletzug ???? Was mache ich falsch???
  Mit Zitat antworten Zitat
Benutzerbild von semo
semo

Registriert seit: 24. Apr 2004
755 Beiträge
 
Delphi 2010 Professional
 
#4

Re: Stringreplace - Zugriffsverletzung

  Alt 12. Okt 2006, 20:48
also ich habe deine funktion getJahr ohne probleme ausführen können.
post doch mal dein komplettes programm bzw hänge es an.

und ich schließe mich dem tip von mkinzler mit dem decodeDate an. denn wozu eine dll verwenden wenn es doch von haus aus schon funktionen gibt die dir das gewünschte resultat liefern.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#5

Re: Stringreplace - Zugriffsverletzung

  Alt 12. Okt 2006, 20:56
ich hätte am ehesten hier den Fehler vermutet:
datum := pchar(datetostr(date)); da du dir nur einen Pointer auf das result von "DateToStr" holst kann ich mir vorstellen das der Compiler den Rückgabewert bei zeiten wieder aufräumt und ein Pointer somit ins nirvana zeigt.
aber ich versteh eh nicht warum du ständig auf pchar castest anstelle die entsprechenden Stringfunktionen zu verwenden.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: Stringreplace - Zugriffsverletzung

  Alt 12. Okt 2006, 21:31
Moin Gordon,

hast Du auch daran gedacht die Unit ShareMem mit einzubinden?
Ansonsten kannst Du keine Daten vom Typ String für die Übergabe zwischen EXE und DLL verwenden.
Das wird im Kommentar beschrieben, wenn man den DLL-Wizard benutzt.
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
Antwort Antwort


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 04:17 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