![]() |
Inhalt (Get...) in Variable Speichern?
Hallo,
ich habe eine Funktion die sieht wie folg aus:
Delphi-Quellcode:
Gebe ich diese nun mit WriteLn aus, funktioniert es wunderbar!
GetInformation ('name.txt');
Möchte ich die Ausgabe allerdings nun in einer Variable speichern funktioniert das ganze nicht!? Zum Beispiel: (Variable oberhalb Deklariert mit
Delphi-Quellcode:
)
var out: String;
Delphi-Quellcode:
Funktioniert aber nicht!
out := GetInformation ('name.txt');
Habe schon über einen Array nachgedacht, allerdings ist die Menge der Ausgabe von GetInformation unbekannt!? Wie müsste es nun richtig aussehen wollte ich das ganze in einer Variable speichern? Mfg. Teyhouse |
Re: Inhalt (Get...) in Variable Speichern?
Normalerweise sollte das so funktionieren:
Delphi-Quellcode:
Btw.: "out" ist kein schöner Variablenname, weil es ein reserviertes Wort ist. :)
function GetInformation(AFilename : String) : String;
var Buffer : String; begin //Datei öffnen //Information in die Variable "Buffer" lesen //Resultat der Funktion setzen ... Result := Buffer; //... oder anhängen Result := Result + Buffer; //Datei schliessen end; procedure WasWeissIch(); var Info : String; begin Info := GetInformation('name.txt'); end; |
Re: Inhalt (Get...) in Variable Speichern?
Hallo,
Zum einen ist die Frage, von welchem Typ die Funktion GetInformation ist, und zum anderen: was heißt "Funktioniert nicht"? Compilerfehler, Laufzeitfehler? MfG Klaus |
Re: Inhalt (Get...) in Variable Speichern?
[Fehler] old.dpr(189): Inkompatible Typen: 'String' und 'procedure, untyped pointer or untyped parameter'
Das ist der Fehler welcher ausgegeben wird? |
Re: Inhalt (Get...) in Variable Speichern?
Dann zeig uns doch einmal die Dekalaration der Funktion
|
Re: Inhalt (Get...) in Variable Speichern?
Das kann ich leider nicht bzw. darf ich nicht, die Funktion darf nicht Public werden!
Kann aber die benutzten Deklarationen zeigen:
Delphi-Quellcode:
Hilft das?
type
TSECItem = packed record SECItemType: dword; SECItemData: pchar; SECItemLen: dword; end; PSECItem = ^TSECItem; var NSSModule: THandle; NSS_Init: function(configdir: pchar): dword; cdecl; NSSBase64_DecodeBuffer: function(arenaOpt: pointer; outItemOpt: PSECItem; inStr: pchar; inLen: dword): dword; cdecl; PK11_GetInternalKeySlot: function: pointer; cdecl; PK11_Authenticate: function(slot: pointer; loadCerts: boolean; wincx: pointer): dword; cdecl; PK11SDR_Decrypt: function(data: PSECItem; result: PSECItem; cx: pointer): dword; cdecl; NSS_Shutdown: procedure; cdecl; PK11_FreeSlot: procedure(slot: pointer); cdecl; hToken: THandle; ProfilePath: array [0..MAX_PATH] of char; ProfilePathLen: dword; FirefoxProfilePath: pchar; MainProfile: array [0..MAX_PATH] of char; MainProfilePath: pchar; PasswordFile: THandle; PasswordFileSize: dword; PasswordFileData: pchar; Passwords: string; BytesRead: dword; CurrentEntry: string; Site: string; Name: string; Value: string; KeySlot: pointer; EncryptedSECItem: TSECItem; DecryptedSECItem: TSECItem; Result: string; |
Re: Inhalt (Get...) in Variable Speichern?
Mich interessiert nicht die Implementierung sondern nur Signatur (Interface) der Funktion
|
Re: Inhalt (Get...) in Variable Speichern?
Ok frag ich ma so, wie könnte ich die Ausgabe von WriteLn in ne Variable umleiten? Das würde auch funktionieren!?
|
Re: Inhalt (Get...) in Variable Speichern?
Poste doch einfach die Signatur der Funktion. Eine Signatur sieht z.B. so aus:
Delphi-Quellcode:
function GibWasZurueck(const iBla: integer): string;
|
Re: Inhalt (Get...) in Variable Speichern?
Signatur:
1.
Delphi-Quellcode:
procedure GetInformation(SignonsFile : String);
|
Re: Inhalt (Get...) in Variable Speichern?
Da es eine procedure ist, gibt sie nicht zurück. Deshalb kannst du auch deen (nicht existenten) Rückgabewert nicht speichern ;)
|
Re: Inhalt (Get...) in Variable Speichern?
Das ist eine Prozedur, die gibt gar nichts zurück. Wie machst Du das denn mit writeln?
|
Re: Inhalt (Get...) in Variable Speichern?
Zitat:
Was du allerdings gemacht hast ist eine Procedure zu schreiben, die schonmal keine Werte Zurückgeben kann. Die deklaration deiner Funktion sollte so aussehen:
Delphi-Quellcode:
function GetInformation(SignonsFile : String) : String;
Probiers mal aus! :thumb: |
Re: Inhalt (Get...) in Variable Speichern?
Ja das funktioniert im Prinzip sogar schon, den erst jetzt kann es einen Rückgabewert liefern.
Allerdings ist das ganze noch ein wenig mit Fehlern bestückt. Könnte mir vielleicht mal jemand der Zeit und Lust hat seine ICQ / Email zukommen lassen? Dann sende ich einmal den Kompletten Quellcode ;) Mfg. Teyhouse /Edit: Hänge noch an dieser Stelle:
Delphi-Quellcode:
Fehlerausgabe:
result := result + (Name, ' = ', Resulty);
[Fehler] old.dpr(138): ')' erwartet, aber ',' gefunden |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:34 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