AGB  ·  Datenschutz  ·  Impressum  







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

var eine Funktion übergibt wert nicht

Ein Thema von gandime · begonnen am 12. Jul 2007 · letzter Beitrag vom 13. Jul 2007
Antwort Antwort
Seite 1 von 2  1 2      
gandime
(Gast)

n/a Beiträge
 
#1

var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:47
Hi,
also ich habe eine Funktion:

Delphi-Quellcode:
function split_filename(s_filename,s_dir,s_name:string):boolean;
begin
  dir:='aaa';
  s_name:='bbb';
end;
diese Funktion rufe ich so auf:

Delphi-Quellcode:
var
  s_dir,s_name:string;
begin
  split_filename('C:\blabla\a.txt',s_dir,s_name);
  showmessage(s_dir);
  showmessage(s_name);[
aber sowohl s_dir als auch s_name =''

warum?

mfg
gandime
  Mit Zitat antworten Zitat
Benutzerbild von Neutral General
Neutral General

Registriert seit: 16. Jan 2004
Ort: Bendorf
5.219 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#2

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:49
Hi,

Du gibst erst mal in deiner Funktion nichts zurück. Das solltest du machen, sonst kannst du auch proceduren benutzen.

Delphi-Quellcode:
procedure split_filename(var s_filename,s_dir,s_name: String);
begin
  s_dir:='aaa';
  s_name:='bbb';
end;
So würde es klappen.

Gruß
Neutral General
Michael
"Programmers talk about software development on weekends, vacations, and over meals not because they lack imagination,
but because their imagination reveals worlds that others cannot see."
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:52
es sind auch keine Var Parameter
Markus Kinzler
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#4

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:53
das ist jetzt nicht die richtige Funktion ich hab die blos einmal beispielhalber geschrieben
aber der booleanwert wird benötigt
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:55
Wie sollen wir den wissen, wie deine Funktion/Prozedur aussieht?Die gepostete funktioniert so nicht.

procedure split_filename(var s_filename; var s_dir, var s_name: String);
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#6

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:55
Hallo,

es wird doch nichts zurückgegeben.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat
Benutzerbild von SirThornberry
SirThornberry
(Moderator)

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

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:56
wenn du mit deiner richtigen funktion ein problem hast und mit der geposteten nicht solltest du deine richtige posten.
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat
gandime
(Gast)

n/a Beiträge
 
#8

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:59
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;
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

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

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 17:59
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 )
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
gandime
(Gast)

n/a Beiträge
 
#10

Re: var eine Funktion übergibt wert nicht

  Alt 12. Jul 2007, 18:08
danke für die info jetzt hab ichs
  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 01:08 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