![]() |
Buffer-Probleme mit Indy 10.0.52
Hallo,
nach dem ich nun wirklich schon lange genug gesucht habe und mich schon beinahe wund gegoole’d habe, möchte ich euch mal mit einer wahrscheinlich banalen Anfängerfrage hier ein wenig belästigen, sorry aber ich häng hier einfach fest :-( Ich benutze: - Delphi 2005PE - Indy 10.0.52 -> Installiert exakt nach dieser Anleitung: ![]() Im Netz habe ich folgenden, für ein Anfänger zunächst mal sehr übersichtlichen Code als Beispiel bzw. zum Einstieg zur Indy Komponente gefunden:
Delphi-Quellcode:
Für mich als Anfänger zunächst mal ein genial übersichtlicher Code um in die Materie einzusteigen, wenn er denn auch funktionieren würde?
procedure TForm1.Button1Click(Sender: TObject);
begin IdFTP1.Host := 'ftp.xxxxxx.com'; IdFTP1.Username := 'xxxxx'; IdFTP1.Password := 'xxxxx'; IdFTP1.OpenWriteBuffer( -1 ); IdFTP1.TransferType := ftBinary; IdFTP1.Get( 'test.html', 'c:\test.html', true ); // here 'true' means overwrite existing file IdFTP1.Abort; // forces the data connection to be closed. IdFTP1.Quit; end; Das Problem fängt damit an, dass „OpenWriteBuffer“ schon mal als „Undefinierter Bezeichner“ von Delphi angemeckert wird. Werfe ich die Zeile allerdings einfach raus, so bleibt die Geschichte dann mit einer „Zugriffsverletzung bei Adresse bal bla“ in Unit IdFTP hängen, und zwar genau hier:
Delphi-Quellcode:
Es wäre wirklich klasse wenn mir hier einer ein wenig auf die Sprünge hälfen könnte. Auf der Seite von Indy konnte ich leider keine Beispiel finden, nur tonnenweise Hilfe Files die mir Zeigen wie z.B. der Sytax zu IdFTP1.Get und Put auszusehen hat, sorry aber damit komme ich hier nicht weiter. Ich habe mir auch den Source von
FDataChannel.IOHandler.SendBufferSize := IOHandler.SendBufferSize;
![]() Danke schon mal im Voraus!! |
Re: Buffer-Probleme mit Indy 10.0.52
Herzlich willkommen in der Delphi-PRAXiS, Federvieh.
Im Indy-Projekt haben die Entwickler immer wieder mal größere Änderungen an den Komponenten und der Architektur vorgenommen. OpenWriteBuffer() ist definitiv eine bekannte Methode von TIdFTP (Version 9). Vielleicht solltest du dir von der ![]() Freundliche Grüße vom marabu |
Re: Buffer-Probleme mit Indy 10.0.52
:zwinker: so was dummes aber auch, ich muss aber auch mal zu meiner Verteidigung sagen das die Indy-Seite schon recht unübersichtlich gestaltet ist, wie auch immer - Danke für die Info!!!
|
Re: Buffer-Probleme mit Indy 10.0.52
Also ich war ja guter Dinge dass ich, mit der Info von oben nun ohne fremde Hilfe weiter komme aber ich bin wohl zu doof dafür. Ich habe nun die Indy 10 Komponente schon zwei mal neu installiert inklusive Delphi 2005PE aber die Sache will einfach nicht. Ich kann mich zwar auf dem Server einlogen aber bei allen weiteren Zugriffen passiert einfach nichts, bis dann nach der ganzen Weile die Fehlermeldung - unable to build data connection: Connection timed out – erscheint. Was mache ich nur Falsch, der Code ist doch zu simpel um was falsch zu machen oder doch?
Hier der Code:
Delphi-Quellcode:
Ich lese ja immer wieder dass das Internet geradezu zugeschissen ist mit Demos zu der Indy Komponente... seltsamem dass ich keine finden kann. Auf der
unit Unit1;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient, IdExplicitTLSClientServerBase, IdFTP; type TForm1 = class(TForm) Button1: TButton; IdFTP1: TIdFTP; ListBox1: TListBox; Button2: TButton; Button3: TButton; procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin IdFTP1.Username :=('xxx'); IdFTP1.Password := ('xxx'); IdFTP1.Host := ('ftp.egal.de'); IdFTP1.Connect; end; procedure TForm1.BeendenClick(Sender: TObject); begin IdFTP1.Quit; end; procedure TForm1.MachWasClick(Sender: TObject); begin //IdFTP1.Get('test.bmp','c:\test.bmp', true); IdFTP1.List(ListBox1.Items); end; end. ![]() Woran kann das liegen? |
Re: Buffer-Probleme mit Indy 10.0.52
Hi, hab nun doch en Demo für Indy 10 gefunden, wie schon gesagt, die Seite ist alles andere als übersichtlich, auf einer Seite schreiben sie dass es keine Demos zu 10 gibt, auf ner anderen scheissen sie dich zu damit... kein wunder dass die nach nem neuen Webmaster suchen ;-)
Dennoch hab ich das gleiche Problem, die Kiste friert einfach ein, sobald versucht wird eine Aktion durchzuführen. Da das Demo gleich nach dem Einlogen versucht das Inhaltsverzeichnis zu laden schmiert die Kiste gleich von Beginn an ab... was weis der Geier wo hier das Problem liegt, das ist einfach nur zum Heulen. Ich könnte geradewegs senkrecht in die Luft kotzen... :-( |
Re: Buffer-Probleme mit Indy 10.0.52
Moin moin,
Zitat:
Aber hier mal dein Bsp...
Delphi-Quellcode:
Ein Hinweis: Wenn du die STRG Taste gedrückt hälst und mit der Maus auf z.B. .Quit klickst,
//...
uses IdFTPCommon; procedure TForm1.Button1Click(Sender: TObject); begin IdFTP1.Host := 'ftp.egal.de'; IdFTP1.Username := 'xxx'; IdFTP1.Password := 'xxx'; IdFTP1.Connect; if IdFTP1.Connected then begin IdFTP1.List(ListBox1.Items, '', False); if ListBox1.Items.IndexOf('test.bmp') <> -1 then begin IdFTP1.TransferType := ftBinary; IdFTP1.Get('test.bmp', 'c:\test.bmp', true); end; IdFTP1.Disconnect; //IdFTP1.Quit; //deprecated; end; end; //... gelangst du zur entsprechenden Methode. Dort habe die Entwickler manchmal Kommentare stehen die einem weiterhelfen könnten. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:17 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