![]() |
var eine Funktion übergibt wert nicht
Hi,
also ich habe eine Funktion:
Delphi-Quellcode:
diese Funktion rufe ich so auf:
function split_filename(s_filename,s_dir,s_name:string):boolean;
begin dir:='aaa'; s_name:='bbb'; end;
Delphi-Quellcode:
aber sowohl s_dir als auch s_name =''
var
s_dir,s_name:string; begin split_filename('C:\blabla\a.txt',s_dir,s_name); showmessage(s_dir); showmessage(s_name);[ warum? mfg gandime |
Re: var eine Funktion übergibt wert nicht
Hi,
Du gibst erst mal in deiner Funktion nichts zurück. Das solltest du machen, sonst kannst du auch proceduren benutzen.
Delphi-Quellcode:
So würde es klappen.
procedure split_filename(var s_filename,s_dir,s_name: String);
begin s_dir:='aaa'; s_name:='bbb'; end; Gruß Neutral General |
Re: var eine Funktion übergibt wert nicht
es sind auch keine Var Parameter
|
Re: var eine Funktion übergibt wert nicht
das ist jetzt nicht die richtige Funktion ich hab die blos einmal beispielhalber geschrieben
aber der booleanwert wird benötigt |
Re: var eine Funktion übergibt wert nicht
Wie sollen wir den wissen, wie deine Funktion/Prozedur aussieht?Die gepostete funktioniert so nicht.
Delphi-Quellcode:
procedure split_filename(var s_filename; var s_dir, var s_name: String);
|
Re: var eine Funktion übergibt wert nicht
Hallo,
es wird doch nichts zurückgegeben. Bis bald Chemiker |
Re: var eine Funktion übergibt wert nicht
wenn du mit deiner richtigen funktion ein problem hast und mit der geposteten nicht solltest du deine richtige posten.
|
Re: var eine Funktion übergibt wert nicht
hier:
Delphi-Quellcode:
function split_filename(s_filename,s_dir,s_name:string):boolean;
var i_dir_l:integer; s_temp:string; begin if (pos('\',s_filename)<>0) then begin i_dir_l:=length(s_filename); s_temp:=''; repeat s_temp:=s_temp+s_filename[i_dir_l]; i_dir_l:=i_dir_l-1; until (i_dir_l=0); s_name:=split_vor(s_temp,'\',true); s_dir:=split_nach(s_temp,'\',true); i_dir_l:=length(s_name); s_temp:=''; repeat s_temp:=s_temp+s_name[i_dir_l]; i_dir_l:=i_dir_l-1; until (i_dir_l=0); s_name:=s_temp; i_dir_l:=length(s_dir); s_temp:=''; repeat s_temp:=s_temp+s_dir[i_dir_l]; i_dir_l:=i_dir_l-1; until (i_dir_l=0); s_dir:=s_temp+'\'; result:=true; end else begin s_dir:=''; s_name:=''; result:=false; end; end; |
Re: var eine Funktion übergibt wert nicht
Moin gandime,
Du musst zwischen vier Varianten von Parametern unterscheiden: Konstante-Parameter (const): Der Wert wird an die Funktion/Prozedur übergeben, und man kann dem Parameter nichts zuweisen (wird schon vom Compiler geblockt). Wert-Parameter (kein Prefix): Der Wert wird als Kopie an die Funktion/Prozedur übergeben. Man kann dem Parameter etwas zuweisen, das hat dann aber nur innerhalb der Funktion/Prozedure Gültigkeit. Var-Parameter (var): Der Wert wird an die Funktion/Prozedur übergeben, man kann etwas zuweisen, und es wird hierbei in die Variable geschrieben, die angegeben wurde. Out-Parameter (out): Es wird kein Wert an die Funktion/Prozedur übergeben. Dieser Paramtertyp dient nur dazu Werte zurückzugeben. (Result reicht ja nicht immer ;-)) |
Re: var eine Funktion übergibt wert nicht
danke für die info jetzt hab ichs
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:44 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz