AGB  ·  Datenschutz  ·  Impressum  







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

Der richtige Rückgabewert

Ein Thema von bscreator · begonnen am 3. Feb 2005 · letzter Beitrag vom 4. Feb 2005
Antwort Antwort
Seite 1 von 2  1 2      
bscreator

Registriert seit: 20. Jan 2005
Ort: Kempten
15 Beiträge
 
#1

Der richtige Rückgabewert

  Alt 3. Feb 2005, 17:59
Hi Leute,

mein Programm wird mit einem kleinen Dateimanager ausgestattet. Da meinen Routinen für die Dateisuche zwar funktionieren, allerdings auch ziemlich lang sind, möcht ich diese in einer DLL unterbringen.

Jetzt zu meinen Fragen:
Der Code der Funktion soll alle Dateinamen, die er gefunden hat, in einer Art Liste zurückliefert, damit ich diese dann bequem in meiner ListBox übernehmen kann.

1. Welchen Rückgabewert muss ich für solch eine Funktion verwenden ?
  Mit Zitat antworten Zitat
Benutzerbild von Binärbaum
Binärbaum

Registriert seit: 19. Jan 2005
Ort: Elstra
764 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Der richtige Rückgabewert

  Alt 3. Feb 2005, 18:02
Man könnte dafür eine TStringList nehmen oder einen dynamischen Array of string.

MfG
Binärbaum
There are exactly 10 kinds of people: those who understand binary, and those who don't.
---
"Software reift beim Kunden. Bei Hardware ist es anders: Hardware fault beim Kunden." - Rainer G. Spallek
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Der richtige Rückgabewert

  Alt 3. Feb 2005, 18:22
Warum willst du den Code in eine DLL auslagern nur weil er viele Zeilen hat? DLLs bringen zusätzlichen Overhead mit sich ganz zu schweigen von den Problemen, wenn es darum geht Strings, StringArrays oder gar Objekte zurückzugeben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von mr47
mr47

Registriert seit: 6. Dez 2004
Ort: Stuttgart
644 Beiträge
 
Delphi 2005 Personal
 
#4

Re: Der richtige Rückgabewert

  Alt 3. Feb 2005, 18:25
schreib doch die Suchfunktion einfach in ne eigene Unit, wenn sie so lang ist!
  Mit Zitat antworten Zitat
bscreator

Registriert seit: 20. Jan 2005
Ort: Kempten
15 Beiträge
 
#5

Re: Der richtige Rückgabewert

  Alt 3. Feb 2005, 20:24
Ich verwende ein dynamisches Array. Das Erstellen, befüllen und Freigeben ist kein Problem.

Wie muss ich eine Funktion oder Prozedur definieren, die einen Zeiger auf ein dynamisches Array zurückgibt ?

function GetFiles(Verzeichnis : String):[Zeiger auf dynamisches Array]
  Mit Zitat antworten Zitat
Aike

Registriert seit: 2. Okt 2004
319 Beiträge
 
#6

Re: Der richtige Rückgabewert

  Alt 3. Feb 2005, 20:47
Oder du nutzt Threads
Achim
  Mit Zitat antworten Zitat
bscreator

Registriert seit: 20. Jan 2005
Ort: Kempten
15 Beiträge
 
#7

Re: Der richtige Rückgabewert

  Alt 4. Feb 2005, 18:16
Nein, keine Threads, die sind ja noch komplizierter.
Erst mal versuch ichs mit nem dynamischen Array.

Nur weiß ich nicht, wie man das als Rückgabewert in einem Funktionskopf deklariert ?
  Mit Zitat antworten Zitat
Thunderman

Registriert seit: 14. Jun 2002
Ort: Lüneburg
13 Beiträge
 
#8

Re: Der richtige Rückgabewert

  Alt 4. Feb 2005, 18:22
vorher einen eigenen Typ deklarieren:
Delphi-Quellcode:
type
  PMeinArray = ^TMeinArray;
  TMeinArray = array of TIrgendwas;
...
function test: PMeinArray;
begin
  ...
end;
...
Thunderman
Bei schwierigen Problemen entscheiden wir uns einfach für die richtige Lösung. Klar?
  Mit Zitat antworten Zitat
Oxmyx

Registriert seit: 21. Sep 2004
499 Beiträge
 
#9

Re: Der richtige Rückgabewert

  Alt 4. Feb 2005, 18:41
Zitat von Luckie:
Warum willst du den Code in eine DLL auslagern nur weil er viele Zeilen hat? DLLs bringen zusätzlichen Overhead mit sich ganz zu schweigen von den Problemen, wenn es darum geht Strings, StringArrays oder gar Objekte zurückzugeben.
Wieso sollte eine DLL Overhead mitbringen? Der einzige Overhead den ich mir vorstellen kann, ist die Zeit, bis die DLL in den Speicher geladen ist. Danach ist es so, als ob der Code direkt in der ausführbaren Programmdatei gestanden hätte, es gibt keinen Geschwindigkeitsunterschied.
Vielleicht liefert die Jump Prediction im Prozessor öfters ein falsches Ergebnis, aber das ist nur eine Vermutung, ich glaube nicht dass das wirklich messbar ist.
  Mit Zitat antworten Zitat
bscreator

Registriert seit: 20. Jan 2005
Ort: Kempten
15 Beiträge
 
#10

Re: Der richtige Rückgabewert

  Alt 4. Feb 2005, 19:41
Mein obiger Funktionscode:

Delphi-Quellcode:
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

type
   PMeinArray = ^TMeinArray;
   TMeinArray = Array of String;

var
  Form1: TForm1;

  function CreateArray:TMeinArray; //Die Array-Funktion
Wenn ich dann die Dimension des Arrays festlegen und Werte übergeben möchte will, kommen die Fehlermeldungen:
"[Fehler] Unit1.pas(33): '(' erwartet, aber ',' gefunden"
"[Fehler] Unit1.pas(34): '(' erwartet, aber ',' gefunden"
"[Fehler] Unit1.pas(35): '(' erwartet, aber ',' gefunden"


Die Funktion CreateArray:

Delphi-Quellcode:
function CreateArray:TMeinArray;
begin
    SetLength(TMeinArray,9); //Array mit 9 Elementen erstellen (0-8)
    TMeinArray[0] := 'Hallo'; //Element 0 mit 'Hallo' befüllen
    Result := TMeinArray; //Rückgabewert ist das Array;
end;

Wo liegt der Fehler ?
  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 12:43 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