Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   FTP Upload Problem (https://www.delphipraxis.net/179026-ftp-upload-problem.html)

Golli18 10. Feb 2014 08:22

Delphi-Version: XE5

FTP Upload Problem
 
Hallo Delphi Forum,

Habe ein Problem.
Ich versuche über einen FTP-Client(Android) eine Text Datei hochzuladen mit folgendem Inhalt:

Befehl
Benutzername


Doch wenn die Datei beim Server ankommt, wird der Inhalt:

BefehlBenutzername

Warum?

Mit freundlichen Grüßen

Golli

Jonas Shinaniganz 10. Feb 2014 08:26

AW: FTP Upload Problem
 
Das könnte an einem Steuerzeichen / zwei unterschiedlichen Applikationen mit denen du die Textdatei betrachtest liegen.

Wie erstellst du die Textdatei auf dem Android?

Golli18 10. Feb 2014 08:43

AW: FTP Upload Problem
 
Hey Jonas Shinaniganz,

auf dem Android sieht das so aus:

Delphi-Quellcode:
procedure TTabbedForm.datenAbfragen(command: string; parameter: String);
var
  datei: textfile;
  stream: TFileStream;
  begin
    try
      AssignFile(datei, TPath.GetTempPath + '/command.txt');
      ReWrite(datei);
      WriteLn(datei, command);
      WriteLn(datei, parameter);
      CloseFile(datei);
    except
      CloseFile(datei);
      showMessage('Befehl ' + command + ' fehlgeschlagen');
    end;

    stream:= TFileStream.Create(TPath.GetTempPath + '/command.txt', fmOpenRead);

    //Befehl auf den Server hochladen
    IdFTP1.TransferType := ftASCII;
    //Datei command.txt hochladen
    //IdFTP1.Put(TPath.GetTempPath + '/command.txt', ed_Benutzername.Text + '.txt', true);
    IdFTP1.Put(stream, ed_Benutzername.Text, true);
    //Datei ipadresse.txt runtergeladen
    IdFTP1.Get(ed_Benutzername.Text + '.txt', TPath.GetTempPath + '/command.txt', true);

end;

Jonas Shinaniganz 10. Feb 2014 09:34

AW: FTP Upload Problem
 
WriteLn(datei, 'a');
WriteLn(datei, 'b');

ergibt in einer .txt eigentlich immer:
a
b

versuch mal bitte
WriteLn(datei, command + sLineBreak);
WriteLn(datei, parameter);

Golli18 10. Feb 2014 09:42

AW: FTP Upload Problem
 
Hey,

Leider ändert das nichts.

es steht trotz alldem BefehlBenutzername bzw. ab statt

Befehl
Benutzername

bzw.

a
b

Jonas Shinaniganz 10. Feb 2014 10:23

AW: FTP Upload Problem
 
Okay dann ändere mal die Zeile

Delphi-Quellcode:
IdFTP1.TransferType := ftASCII;
in

Delphi-Quellcode:
IdFTP1.TransferType := ftBinary;
Dann überträgst du die Datei im 'Binärmodus'. Mit welchem Programm schaust du dir die .txt auf dem FTP Server an?

Golli18 10. Feb 2014 10:25

AW: FTP Upload Problem
 
Hey,

Das haben wir auch schon Probiert das selbe Problem.
Ich öffne die Datei einfach als Textdatei im Editor.

MFG

Golli

Jonas Shinaniganz 10. Feb 2014 10:38

AW: FTP Upload Problem
 
ok dann liegt es am Steuerzeichen,

unter Android werden Zeilenumbrüche repräsentiert durch:

LF 0A 10 \n

unter Windows, DOS, OS/2, CP/M, TOS (Atari)so:

CR LF 0D 0A 13 10 \r\n

Nachzulesen auf

http://de.wikipedia.org/wiki/Zeilenu..._Zeilenumbruch

Du hast also in deiner Datei am Beispiel (ab) warscheinlich:

610A0A620A

du brauchst aber:

610D0A0D0A620D0A

Golli18 10. Feb 2014 10:42

AW: FTP Upload Problem
 
Und wie lösen wir jetzt unser Problem?

MFG

Golli

Jonas Shinaniganz 10. Feb 2014 10:47

AW: FTP Upload Problem
 
Naja ich weiß nicht wie man es schön macht,

aber du kannst ja mal ein '+ char(13) +' mit einbauen... :)

Hatte das Problem noch nicht.

Nochmal als Beispiel:

Delphi-Quellcode:
WriteLn(datei, 'a' +  char(13) + char(10) + 'b');
ergibt ein:

a
b


Und in deinem Fall:

Delphi-Quellcode:
WriteLn(datei, command + char(13));
WriteLn(datei, parameter);
bin grade ein bisschen langsam, hab hier zu tun...

lg


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:42 Uhr.
Seite 1 von 2  1 2      

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