Page 1 of 1

Export in Textdatei

Posted: 20 Jun 2017, 06:05
by Dani99
Hallo Forum.

Ich habe (mal wieder) eine Frage die ich nicht selber beantworten kann. Auch die Suche hab ich brav benutzt, finde aber nix dazu.
Mein AHK Mini Tool besteht aus einer Eingabemaske mit diversen Edit Feldern, die später über die Send Methode an eine Datenbank geschickt werden.
Das klappt soweit auch alles super.

Ausnahme: Der User macht zwischendurch eine Eingabe oder es poppt ein anderes Fenster auf (Windows Benachrichtigung, email, Software Telefon klingelt etc.)

Jetzt meine Frage:
Ist es möglich, mit AHK eine Textdatei auf den Desktop des Users zu legen, in der alle Inhalte der Edits aus dem GUI gespeichert werden?
Wäre es darüber hinaus sogar möglich, neue Daten in eine bestehende Textdatei anzufügen? (Mit vorherigem Check ob die überhaupt existiert).

Freue mich auf Eure Antworten :)

Re: Export in Textdatei

Posted: 20 Jun 2017, 06:40
by just me
Moin,

ich weiß nicht, wo Du gesucht hast. Die Deutsche Onlinehilfe enthält z.B. einen Abschnitt Datei, Verzeichnis, Laufwerk. Weil Du etwas zum Thema 'Textdatei' suchst, würde ich den empfehlen.

Re: Export in Textdatei

Posted: 20 Jun 2017, 06:46
by Dani99
:D Buuuuh...

Hätte jetzt mit einem Schnipsel gerechnet...

Bisher habe ich:

Code: Select all

	; Textdatei erstellen
	FileAppend,,EXPORT.txt
	Run Export.txt	
	#NoEnv
	FensterTitel := "Export.txt - Editor"
		If WinExist(FensterTitel) ; wenn das Fenster gefunden wird, wird es zum 'zuletzt gefundenen Fenster'.
		{
   			WinActivate ; benutzt das 'zuletzt gefundene Fenster'
   			WinWaitActive ; dito;
		}
	send Datum: %TravelDate%	; Datum senden
Problem: Er holt das Fenster NICHT in den Vordergrund sondern schreibt meine Variable nochmal in das "andere" Programm...

Re: Export in Textdatei

Posted: 20 Jun 2017, 07:01
by nnnik
Du kannst die daten auch direkt in die Datei schreiben:

Code: Select all

FileAppend,% "Datum: " . travelDate,EXPORT.txt

Re: Export in Textdatei

Posted: 20 Jun 2017, 07:21
by Dani99
nnnik wrote:Du kannst die daten auch direkt in die Datei schreiben:

Code: Select all

FileAppend,% "Datum: " . travelDate,EXPORT.txt
Das ist schonmal eine ganz tolle Sache.....
Wenn Du mir jetzt noch sagst, wie ich hier mehrere Variablen reinpacke und ggf. einen Zeilenumbruch - bist Du mein Held :)

Re: Export in Textdatei

Posted: 20 Jun 2017, 07:53
by Dani99
Ich formuliere mal neu (spezifiziere nach):
Bisher habe ich:
FileAppend, % "Datum: " Var1" Zeit: " Var2 "Code: " Var3 "Fahrgast: " Var4" " Var5,Export.txt

Aber: Der erstellt keine neue Zeile :(

Re: Export in Textdatei

Posted: 20 Jun 2017, 08:07
by just me
Den Zeilenwechsel (Windows-Standard: CRLF - `r`n) musst Du selbst anhängen oder voranstellen:

Code: Select all

FileAppend, % "Datum: " Var1 " Zeit: " Var2 " Code: " Var3 " Fahrgast: " Var4 " " Var5 "`r`n", Export.txt

Re: Export in Textdatei

Posted: 20 Jun 2017, 08:36
by divanebaba
ACHTUNG: FEHLERBEHAFTET - DARAUF FOLGENDEN POST UNBEDINGT MITLESEN.
Hi.
Zu Deinem letzten Post: Fileappend erstellt keine neue Zeile, weil Die Variable nicht erstellt werden kann. Grund dafür ist ein falscher Aufbau der Variablen.
Es muss es lauten.

Code: Select all

FileAppend, % "Datum: " . Var1 . " Zeit: " . Var2 . "Code: " . Var3 . "Fahrgast: " . Var4 . " " . Var5, Export.txt, UTF-8
Diese Punkte zwischen Text- und Variablenabschnitten verbinden diese zu einer durchgehenden Zeile. Die nicht zwingend notwendige Codierung könnte zukünftige Fehlerquellen vermeiden.

Die Antwort zu Deinen ersten beiden Fragen ist beidesmal ein "Yes you can." und Fileappend ist ein tauglicher Befehl dafür.
Der Umweg über eine Textdatei erscheint mir jedoch unnötig, denn Inhalte einer AHK-Gui ändern, in der Regel, durch Deaktivieren der Gui nicht ihre Inhalte.
Ich würde direkt nach Gui, Submit, NoHide, oder ControlGetText die Datenbank speisen. Aus Informationsmangel kann ich nicht mehr dazu sagen.

ZUSATZ:
Wow. just me war aber schnell. Seinen Hinweis auf den Zeilenumbruch habe ich Depp vernachlässigt. Ein Amalgam aus beiden Hinweisen sollte solide Ergebnisse liefern.
Apropos Amalgam: Meine Mutter wollte mich als Zahnarzt sehen. Meine Karriere endete jedoch mit der deutschen Lehrerempfehlung, also direkt nach der Grundschule.

Re: Export in Textdatei

Posted: 20 Jun 2017, 08:47
by just me
divanebaba wrote:Fileappend erstellt keine neue Zeile, weil Die Variable nicht erstellt werden kann.
FileAppend erstellt nur dann neue Zeilen, wenn im auszugebenden Text Zeilenwechsel `n oder `r`n enthalten sind. Anderenfalls wird der Ausgabetext einfach nur lückenlos an den vorhandenen Text angehängt.

Re: Export in Textdatei

Posted: 20 Jun 2017, 09:03
by divanebaba
Ich habe etwas dazugelernt. Nichts abiturreifes, sondern, daß die Punkte, die ich zum Verbinden von Text und Variableninhalten erwähnte, hier gar nicht nötig sind.
Mit oder ohne Punkte, die Ergebnisse sind identisch.
Faszinierend, würde Spock sagen.

Re: Export in Textdatei

Posted: 20 Jun 2017, 09:24
by just me
Ja, die Punkte können weggelassen werden. Und in AHK 1.1 können an vielen Stellen selbst die Leerzeichen zwischen den einzelnen Bestandteilen der Verbindung weggelassen werden.

Mir hat das noch nie gefallen, aber der Mehrheit der Leute im Forum scheint es wichtig zu sein, so wenig Zeichen wie nur möglich tippen zu müssen. Aber manchmal macht AHK bei weggelassenen Punkt-Operatoren und Leerzeichen etwas völlig anderes, als sie erwarten.

Re: Export in Textdatei

Posted: 20 Jun 2017, 09:35
by divanebaba
divanedepp: Mit oder ohne Punkte, die Ergebnisse sind identisch.
just me: Aber manchmal macht AHK bei weggelassenen Punkt-Operatoren und Leerzeichen etwas völlig anderes, als sie erwarten.

Jetzt habe ich Käse ins Forum gestellt. :roll: :crazy:

Re: Export in Textdatei

Posted: 20 Jun 2017, 09:53
by just me
Nicht wirklich. Aber ich konnte mich noch an einen recht frischen Bugreport erinnern: possible issue with GetCapacity?. Dieses Problem entsteht bei der Mischung von Text/Variablen mit Objektmethoden/eigenschaften. Weil man aber nie genau weiß, empfehle ich, Operatoren und Leerzeichen nicht wegzulassen, auch wenn man dafür ein paar Zeichen mehr tippen muss. Es freut auch das Auge, wenn man sich mal wieder mit dem Sourcecode beschäftigen muss.