Zahl in Buchstabe umwandeln

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Zahl in Buchstabe umwandeln

20 Mar 2018, 02:49

Hallo,

hat jemand eine gute Idee, wie man eine Zahl in einen Buchstabe verwandeln kann oder b) mit Buchstaben rechnen kann?
Zeil ist folgendes:
Eine Loop-Schleife soll der reihe nach testen, ob div. Dateien vorhanden sind.
in der ersten Runde blablablax.pdf.
wenn diese nicht vorhanden ist, soll blablablay.pdf probiert werden. Und so weiter.
Sobald eine Datei gefunden wird soll nur die mit dem höchsten Buchstabe in einen Ordner verschoben werden.

also entweder man fängt mit dem Wert 26 (für Z) oder so an, verringert den pro runde um 1 und macht daraus den entsprechenden Buchstabe oder man verwendet gleich den den Buchstabe Z und "verringert" den Pro Runde um eins, sodass dann eine y in der Variable liegt.

Vielen Dank.
just me
Posts: 9423
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 03:12

Moin,

dafür gibt es die Funktion Chr(). Die 'ANSI-Zeichencodes' für die Buchstaben A - Z sind 65 - 90.
Rohwedder
Posts: 7551
Joined: 04 Jun 2014, 08:33
Location: Germany

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 03:15

Hallo,
genau!:

Code: Select all

Loop, 26
{
Großbuchstabe := Chr(64+A_Index)
Kleinbuchstabe  := Chr(96+A_Index)
MsgBox % A_Index . "`n"
       . Großbuchstabe . "`n"
       . Kleinbuchstabe
}
Return
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 03:31

Rohwedder wrote:Hallo,
genau!
Beim lesen dieser (hin)wegklickereisession bekomme ich sofort phantomschmerz in den mausfinger :lol:
just me
Posts: 9423
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 03:42

Alternative für 'Fortgeschrittene' (mit einer Antiphantomschmerz-Erweiterung für BoBo):

Code: Select all

For Each, Zeichen In StrSplit("zyxwvutsrqponmlkjihgfedcba")
   MsgBox, 0, Guckst Du schnell, %Zeichen%, 0.5
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 07:44

Ahhh, habt ihr auch ein Mittel gegen Phantomschmerzen im Mittelfinger? :crazy: :crazy:

Wenn man die Liste zuvor mit Sort sortiert hat, könnte man sich, je nach Anwendungsfall und Bild...niveau :mrgreen: :mrgreen:, den ganzen Ärger mit dem Auswerten der Buchstaben auch sparen.

Btw: Niemand mag Komplexe. Ich hingegen, liebe meinen Hochwertigkeitskomplex. :lol: :lol:
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 08:12

Hallo,

das klappt super. so eine Idee schwebte mir auch vor, ich konnte sie nur nicht formulieren.
Vielen Dank.
Allerdings habe ich jetzt ein weiteres Problem: FileMove, C:\Users\c.kuschel\Documents\Lieferscheine\*.*, C:\Users\c.kuschel\Documents\Lieferscheine\2018\*.* Tut nichts. Im quellverzeichnis liegen eine Ganze menge Ordner und mehrere Dateien, die alle in den UNterordner "2018" verschoben werden sollen. Das klappt aber nicht. der Script tut garnix. was ist das Problem?
User avatar
nnnik
Posts: 4500
Joined: 30 Sep 2013, 01:01
Location: Germany

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 08:16

Der Zielpfad muss ohne *.* angegeben werden.
Sort zu verwenden kann ich nicht empfehlen - es hat Allgemein keinerlei Relevanz.
Recommends AHK Studio
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 08:31

nnnik wrote:Der Zielpfad muss ohne *.* angegeben werden.
Sort zu verwenden kann ich nicht empfehlen - es hat Allgemein keinerlei Relevanz.
so habe ich es probiert. Es funktioniert nicht. Es wird eine Datei "2018" im zielverzeichnis erstellt (ohne Endung) aber keine Datei verschoben.
FileMove, C:\Users\c.kuschel\Documents\Lieferscheine\*.*, C:\Users\c.kuschel\Documents\Lieferscheine\2018
FileMove, C:\Users\c.kuschel\Documents\Lieferscheine\*.*, C:\Users\c.kuschel\Documents\Lieferscheine\2018\

Es ist so, das eine Datei bla.pdf nicht in den Ordner 2018 verschoben wird, sondern eine Datei 2018 erstellt wird, mit dem Inhalt der .pdf.
Also ich habe dann im Verzeichnis "Lieferscheine" die Datei "2018" mit dem Inahlt der .pdf statt im Verzeichnis Lieferscheine\2018 die Datei Bla.pdf
just me
Posts: 9423
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zahl in Buchstabe umwandeln

20 Mar 2018, 17:09

divanebaba wrote:Wenn man die Liste zuvor mit Sort sortiert hat, könnte man sich, je nach Anwendungsfall und Bild...niveau :mrgreen: :mrgreen:, den ganzen Ärger mit dem Auswerten der Buchstaben auch sparen.
Welche Liste? (Du solltest Deine 'Hochwertigkeit' nicht nur lieben, Du solltest sie auch einfach mal zeigen!)
Folllast wrote:C:\Users\c.kuschel\Documents\Lieferscheine\2018
Existiert der Unterordner '2018' schon?
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: Zahl in Buchstabe umwandeln

21 Mar 2018, 02:32

Folllast wrote:C:\Users\c.kuschel\Documents\Lieferscheine\2018
Existiert der Unterordner '2018' schon?[/quote]
wenn ich den ordner vorher erstelle funktioniert es. Vielen Dank für den Hinweis :)
User avatar
divanebaba
Posts: 804
Joined: 20 Dec 2016, 03:53
Location: Diaspora

Re: Zahl in Buchstabe umwandeln

21 Mar 2018, 06:22

just me wrote:
divanebaba wrote:Wenn man die Liste zuvor mit Sort sortiert hat, könnte man sich, je nach Anwendungsfall und Bild...niveau :mrgreen: :mrgreen:, den ganzen Ärger mit dem Auswerten der Buchstaben auch sparen.
Welche Liste? (Du solltest Deine 'Hochwertigkeit' nicht nur lieben, Du solltest sie auch einfach mal zeigen!) ...
Man kann natürlich, so wie ursprünglich gedacht, abfragen, welche Dateien vorhanden sind, oder
divanebaba wrote:... je nach Anwendungsfall ...
auch fragen, welche Dateien nicht vorhanden sind. Um im letzteren Fall, sollte man sich die vorhandenen Dateien auflisten lassen. Das ist mit "Liste" gemeint gewesen.

Es ist ganz explizit nach dem Umwandeln von Zahlen in Buchstaben gefragt worden. Aber der Anwendungsfall wurde ebenso beschrieben und ich habe mich erdreistet einen anderen Lösungsweg aufzuzeigen, ohne ihn allerdings erschöpfend darzulegen.

Übrigens muss ich hier gar nichts zeigen. Wenn ich schreibe, ich bin ein toller Typ, muss ich nicht jedem auch gleich ein Bier ausgeben.
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: Zahl in Buchstabe umwandeln

21 Mar 2018, 07:17

es waren beides sehr Gute vorschläge, sowohl eine Ansi-Ziffer in ein Buchstabe zu verwandeln als auch eine Buchstabenkette zu verwenden und immer eine Position weiter zu springen. Die Tatsache, dass ich mich für die Möglichkeit mit dem Umwandeln der Ziffer entschieden habe, liegt nur darin begründet, dass diese meiner Ursprünglichen Idee am nächsten kommt bzw. ich am ehesten "verstehe".
just me
Posts: 9423
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: Zahl in Buchstabe umwandeln

21 Mar 2018, 12:00

Hi Folllast,

wenn Du Deine Lösung einstellst, haben vielleicht auch Andere etwas davon, die über diesen Beitrag stolpern.
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: Zahl in Buchstabe umwandeln

21 Mar 2018, 23:50

just me wrote:Hi Folllast,

wenn Du Deine Lösung einstellst, haben vielleicht auch Andere etwas davon, die über diesen Beitrag stolpern.
Hallo,

normal versuch ich das immer zu machen. Hier ist es mir durch das rege treiben in dem Fred durch die Lappen gegangen.
Anbei die Funktion.

Code: Select all

zeichnungkopieren(auftragsnummer,artikelnummer)
{
	ordner := SubStr(artikelnummer, 1 , 4)
	pfad := anfangspfad . ordner . "`\" . artikelnummer
	buchstabe := 90												; fängt bei Nummer 90 an, das ist der ANSI-Wert für das große Z
	loop, 27
	{
	If (buchstabe = 64)												; wenn der Buchstabe A nicht funktioniert hat wird als letztes noch der Bindestrich an Stelle vom Buchstabe versucht.
		buchstabe := 45												; den wert auf den ANSI-Code vom Bindestrich setzen
	index := Chr(buchstabe)											; mit dem ANSI-Code einen Buchstabe generieren und in der Variable index speichern
	pfad2 := pfad . "." . index . ".pdf"									; den Dateipfad zusammenbauen.
	FileAppend, %pfad2%`n, log.txt										; den Dateipfad in eine log.txt schreiben (für Testzwecke)
	if FileExist(pfad2)												; wenn der Pfad existiert...
	{
		FileCopy, %pfad2%, C:`\Users`\c.kuschel`\Documents`\Lieferscheine`\%auftragsnummer%		; in den Auftragsordner speichern
		FileAppend, %artikelnummer%.%index%: kopiert`n, log2.txt								; das kopieren in einer log-Datei dokumentieren
		return																	; wenn das erfolgreich war soll die funktion beendet werden
		}
	buchstabe--																	; ansonsten buchstabe um eins reduzieren und dann geh eine neue Runde los.
	}
}
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Zahl in Buchstabe umwandeln

22 Mar 2018, 00:23

Warum sind in diesem code die backslashes escaped??
Folllast
Posts: 91
Joined: 24 Jan 2018, 04:57

Re: Zahl in Buchstabe umwandeln

22 Mar 2018, 01:02

BoBo wrote:Warum sind in diesem code die backslashes escaped??
Diese Frage kann dir nur Gott selbst beantworten. Ich glaube, die kommen daher, dass die Kopier-Funktion nicht gleich so funktioniert hat wie ich das gerne wollte, und ich als erstes die backslashes escaped habe. Dies hat zwar nicht zur Lösung geführt, wurde aber auch nicht rückgängig gemacht.
Es ist in diesem Fall nicht notwenig, schadet IMHO aber auch nicht.(Abgesehen vom erhöhten Speicherbedarf)
BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: Zahl in Buchstabe umwandeln

22 Mar 2018, 02:04

Es ist in diesem Fall nicht notwenig, schadet IMHO aber auch nicht.(Abgesehen vom erhöhten Speicherbedarf)
Ich möchte den "schaden" mal relativieren, da du den code ja (dankenswerterweise) zur verfügung stellst, und dieser damit auch als gutes beispiel fungiert/fungieren soll(te). Wenn unötig/funktionslos, dann weg damit. Wie sagte schon einst Aristoteles:"Wehret den Anfänger(fehler)!" :mrgreen:

Return to “Ich brauche Hilfe”

Who is online

Users browsing this forum: No registered users and 26 guests