 |
AutoHotkey Community Wir helfen uns gegenseitig aus der Patsche
|
| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: Do Nov 09, 2006 11:03 pm Titel: if clipboard = >leer< |
|
|
muss ich da noch ein else reinbauen? grübel* ich moechte erreichen, das wenn nichts im clipboard steht clipboard_leer: angesprungen wird und wenn was im speicher ist gehts zu weitermachen:
ich möchte euch ersparen wo ich hier schon überall ein else reinprobiert habe
| Code: | if clipboard =
gosub clipboard_leer
firma0 = % ClearString(sIn)
goto weitermachen
firma0 = %clipboard%
weitermachen: |
|
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1889 Wohnort: Österreich
|
Verfasst am: Fr Nov 10, 2006 7:03 am Titel: |
|
|
Mir fehlt da ein Teil der Beschreibung und deine Einrückung verwirrt zudem...
wann soll die Zeile "firma0 = % ClearString(sIn)" ausgeführt werden? In beiden Fällen? In einem der beiden Fälle?
Wenn du nur zu Clipboard_leer oder Weitermachen springen möchtest fehlt auf jeden Fall ein ELSE!
Und was ist mit dieser Zeile? "firma0 = %clipboard%"
Der Code wird nie angesprungen....
Eventuell erklärst du wofür das Ganze dienen soll und wie du es dir vorstellst...
Thalon, reichlich verwirrt... _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: Fr Nov 10, 2006 1:08 pm Titel: |
|
|
| Code: | LeaveOnlyNumbers:
clipboard =
Send ^c
string = %clipboard%
MyString:=LeaveOnlyNumbers(String)
tmpstring=%MyString%
LeaveOnlyNumbers(String)
{
stringlen, Laenge, String
stringsplit, Stringarray, string
Loop, %Laenge%
{
if stringarray%A_Index% is not integer
{
Stringarray%A_Index%=
}
x:= stringarray%A_Index%
NewString=%NewString%%x%
}
String=%NewString%
Return %String%
}
Return
#F1:: ; step 1 start
if clipboard = ; step 2 wenn clipboard = nichts
gosub LeaveOnlyNumbers ; step 3 wenn clipboard = nichts
firma0 = %tmpstring% ; step 4 wenn clipboard = nichts
goto weitermachen ; step 5 wenn clipboard = nichts
firma0 = %clipboard% ; wenn clipboard = irgendwas step 2 bis 5 ignorieren und hier weitermachen
weitermachen:
MsgBox, %tmpstring% |
wollte dich nicht mit überflüssigem code nerven  |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1889 Wohnort: Österreich
|
Verfasst am: Fr Nov 10, 2006 1:19 pm Titel: |
|
|
Der Code ist egal...
Ich muss wissen was es tun soll!
Eine Erklärung (gedachte Funktionsweise) ist es was interessant ist.
Ich kann dir auch mal Code vorsetzen und sagen: such den Fehler
Solange ich nicht weiß wie es funktionieren soll hilft es nix fehlerhaften Code zu posten...
Ich finds raus wie es funktioniert wenn du mir unkommentierten Code gibst, aber nicht anders..
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Fr Nov 10, 2006 2:15 pm Titel: |
|
|
LeaveOnlyNumbers = StripNonIntegers  |
|
| Nach oben |
|
 |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: Fr Nov 10, 2006 3:52 pm Titel: nochemal |
|
|
öhm... ich schon wieder vielleicht bin ich auch in gedanken zu tief in dem marco drin,
sorry wenn ich mich hier unverständlich ausdrücke aber ich gehe nicht auf die eigendliche funktion des marcos ein, weil ich dachte, das würde langweilen (BoBo ist imma so schnell sauer *g)
ich besuche webseiten, dort gehe ich ins impressum und adde alle relevanten daten in meine excel-tabelle, das war früher sehr arbeitsaufwendig, aber seit ich AutoHotkey kenne, geht mir die arbeit x fach schneller von der hand
ab und zu komme ich hier mal lesen, finde so schnipsel wie z.B.
| Code: | !c::
Send, ^c
Loop, Read, MyCriteria.txt
{
IfInString,A_LoopReadLine,%ClipBoard%
{
StringSplit, Field, A_LoopReadLine, `,
ToolTip % (" ---- Number ---- `n" . Field1 . "`n`n ----- Text -------`n" . Field2 . "`n`n --- Wichtung ---`n" . Field3)
Sleep, 5000
ToolTip
Break
}
}
Return |
von BoBo, dann grübel ich ne zeit lang damit rum und bastel das in mein macro rein. Jetzt bekomme ich mit dem ToolTip sofort angezeigt, ob ich diese telefonnummer schon meiner datenbank hinzugefügt habe. voll klasse wieder arbeit gespart.
mein momentan grösstes lern-problem ist das LOOPen, das check ich einfach nicht, ich komm immer irgendwie mit beispielen, wie euren codeschnipseln zum ziel, damit bastele ich dann solange rum bis es funktioniert
aber zu meinem problem:
ich möchte erreichen, das zu kopierende daten mit ODER ohne sonderzeichen (frei wählbar) gespeichert werden
beispiel:
ich habe die daten (123/56) schon ins clipboard kopiert, nichts ist markiert, dann soll das marco feststellen, das daten im clipboard sind und zu weitermachen: gehen dort wird dann der inhalt von clipboard in %firma0% gespeichert. fertig
oder:
das clipboard ist leer, ich habe durch doppelklick daten markiert, nun soll das macro feststellen, das das clipboard leer ist und zu LeaveOnlyNumbers: verzweigen.
dort wird mit ^c das markierte ins clipboard kopiert, und die daten nach sonderzeichen gefiltert. aus (123/56) wird (12356), sodas in diesem konkreten fall nur die telefonnummer ohne sonderzeichen in %firma0% gespeichert werden.
| Code: | #F1:: ; step 1 start
if clipboard = ; if clipboard = <leer> weiter mit zeile "gosub LeaveOnlyNumbers"
gosub LeaveOnlyNumbers ; sonderzeichen entfernen
firma0 = %tmpstring% ; %tmpstring% bekomme ich zurück von LeaveOnlyNumbers
goto weitermachen ;
firma0 = %clipboard% ; if clipboard = %irgendwas% step 2 bis 5 ignorieren und
weitermachen:
;hier daten speichern.... |
gruss in die runde  |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1889 Wohnort: Österreich
|
Verfasst am: Fr Nov 10, 2006 5:37 pm Titel: |
|
|
Das sieht doch gleich viel besser aus
Ich habe mal ein bisschen unnützen Code entfernt und aus | Code: | LeaveOnlyNumbers:
clipboard =
Send ^c
string = %clipboard%
MyString:=LeaveOnlyNumbers(String)
tmpstring=%MyString%
LeaveOnlyNumbers(String)
{
stringlen, Laenge, String
stringsplit, Stringarray, string
Loop, %Laenge%
{
if stringarray%A_Index% is not integer
{
Stringarray%A_Index%=
}
x:= stringarray%A_Index%
NewString=%NewString%%x%
}
String=%NewString%
Return %String%
}
Return
#F1:: ; step 1 start
if clipboard = ; step 2 wenn clipboard = nichts
gosub LeaveOnlyNumbers ; step 3 wenn clipboard = nichts
firma0 = %tmpstring% ; step 4 wenn clipboard = nichts
goto weitermachen ; step 5 wenn clipboard = nichts
firma0 = %clipboard% ; wenn clipboard = irgendwas step 2 bis 5 ignorieren und hier weitermachen
weitermachen:
MsgBox, %tmpstring% | das hier gemacht: | Code: | LeaveOnlyNumbers()
{
Clipboard =
Send ^c
String = %Clipboard%
Loop, Parse, String
{
if A_LoopField is integer
NewString = %NewString%%A_LoopField%
}
Return %NewString%
}
#F1:: ; step 1 start
if clipboard = ; step 2 wenn clipboard = nichts
firma0 := LeaveOnlyNumbers() ; step 3 wenn clipboard = nichts
else
firma0 = %clipboard% ; wenn clipboard = irgendwas step 2 bis 5 ignorieren und hier weitermachen
MsgBox, %firma0%
return | Ich hoffe ich habe an der Funktionalität jetzt nichts geändert, aber soweit habe ich deine Ausführungen verstanden
Der letzte Post war übrigens super (zwar der erste Teil fast zu ausführlich, aber das eigentliche Problem war ausreichend beschrieben).
Ich hoffe geholfen zu haben
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Sa Nov 11, 2006 9:39 am Titel: |
|
|
| Zitat: | | ich besuche webseiten, dort gehe ich ins impressum und adde alle relevanten daten in meine excel-tabelle | Wofür? |
|
| Nach oben |
|
 |
AGU Gast
|
Verfasst am: Sa Nov 11, 2006 11:38 am Titel: |
|
|
Vielleicht ist er so ein Abmahnanwalt.
| Code: | If Clipboard = ;Kein Impressum vorhanden
GoSub, Run C:\Tools\Abmahnungswriter.exe
Else
MsgBox, nächstes Opfer
|
Gruß
AGU |
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Sa Nov 11, 2006 10:43 pm Titel: |
|
|
| Zitat: | | Vielleicht ist er so ein Abmahnanwalt | Er kauft sich davon nen weiteren Porsche und ein Schüler zahlt den dann die nächsten 20 Jahre mit seinem Taschengeld ab  |
|
| Nach oben |
|
 |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: So Nov 12, 2006 8:51 pm Titel: |
|
|
danke Thalon genau sowas meinte ich.
bin kein anwalt, muss lediglich adressen verifizieren und vervollständigen, von irgendwas muss man ja leben... heimarbeit
gruss lamer |
|
| Nach oben |
|
 |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: Fr Nov 17, 2006 1:32 pm Titel: firma0 := LeaveOnlyText() |
|
|
Hallo, hab nochmal ne frage, wenn ich F1 drücke, wird der markierte text mit sprung nach LeaveOnlytext: von sonderzeichen bereinigt und in die datei excelimport_firma.txt geschrieben.
| Code: | LeaveOnlytext:
Sleep, 100
clipboard=
Send ^c
ClipWait
StringReplace, clipboard, clipboard, -, %A_Space%, All
StringReplace, clipboard, clipboard, /, %A_Space%, All
StringReplace, clipboard, clipboard, \, %A_Space%, All
StringReplace, clipboard, clipboard, &, und, All
StringReplace, clipboard, clipboard, ", %A_Space%, All
StringReplace, clipboard, clipboard, (, %A_Space%, All
StringReplace, clipboard, clipboard, ), %A_Space%, All
StringReplace, clipboard, clipboard, !, %A_Space%, All
Sleep, 100
sIN = %clipboard%
clipboard = % ClearString(sIn)
;----------------------------------------
; Zeichenfolge bereinigen
; ----------------------------------------
ClearString(String)
{
Local NewString, Stringarray
NewString := ""
Autotrim, Off ; muss vielleicht nicht sein
; Zeichen prüfen
Stringlen, Laenge, String
Stringsplit, Stringarray, String
Loop, %Laenge%
{
If Char_OK(Stringarray%A_Index%)
{
NewString := NewString . Stringarray%A_Index%
}
}
; überflüssige Leerzeichen entfernen
Loop,
{
StringReplace, NewString, NewString, %A_Space%%A_Space%, %A_Space%, UseErrorLevel
If (ErrorLevel = 0)
{
Break
}
}
Return %NewString%
}
;----------------------------------------
; Zulässige Zeichen prüfen
;----------------------------------------
Char_OK(_Char)
{
If _Char Is Digit
{
Return True
}
If _Char Is Upper
{
Return True
}
If _Char Is Lower
{
Return True
}
If (_Char = " ")
{
Return True
}
Return False
}
return
F1:: ;firma0
P1 = C:\Dokumente und Einstellungen\Administrator\Desktop\tmp
Sleep, 300
firma =
firma0 =
firma1 =
firma2 =
gosub LeaveOnlytext
; ich würde gerne den gosub jump durch:
; if clipboard =
; firma0 := LeaveOnlyText()
; else
; firma0 = %clipboard%
; ersetzen
firma0 = % ClearString(sIn)
filedelete,%P1%\excelimport_firma.txt
filedelete,%P1%\excelimport_firma0.txt
FileAppend,%firma0%,%P1%\excelimport_firma0.txt
FileRead, firma0, %P1%\excelimport_firma0.txt
FileRead, firma1, %P1%\excelimport_firma1.txt
FileRead, firma2, %P1%\excelimport_firma2.txt
FileAppend,Firma`n%firma0%%A_Space%%firma1%%A_Space%%firma2%,%P1%\excelimport_firma.txt
MsgBox,0,,Ergebnis:`n`n%firma0%`n%firma1%`n%firma2%,.9
clipboard =
firma =
firma0 =
firma1 =
firma2 =
Return
#F1:: ;firma1
..... |
so wie hier:
| Code: | LeaveOnlyNumbers()
{
Clipboard =
Send ^c
String = %Clipboard%
Loop, Parse, String
{
if A_LoopField is integer
NewString = %NewString%%A_LoopField%
}
Return %NewString%
}
#F1:: ; step 1 start
if clipboard =
telefon0 := LeaveOnlyNumbers()
else
telefon0 = %clipboard%
MsgBox, %telefon0%
return | .
ich würde gerne den gosub jump durch: | Code: | if clipboard =
firma0 := LeaveOnlyText()
else
firma0 = %clipboard% | ersetzen
yo, kann mir jemand helfen?
*liebFrag |
|
| Nach oben |
|
 |
Thalon
Anmeldedatum: 25.10.2005 Beiträge: 1889 Wohnort: Österreich
|
Verfasst am: Fr Nov 17, 2006 1:36 pm Titel: |
|
|
Jetzt gehst her und machst aus dem Label "LeaveOnlyText:" eine Funktion "LeaveOnlyText()". Dann noch geschwungene Klammern zum einrahmen und schon hast eine Funktion -.-
SOOO schwer ist das doch echt nich...
Thalon _________________ Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe |
|
| Nach oben |
|
 |
lamer
Anmeldedatum: 15.10.2006 Beiträge: 64
|
Verfasst am: Fr Nov 17, 2006 6:48 pm Titel: |
|
|
yo hab das verstanden, danke
jetzt versuche ich | Code: | | StringReplace, clipboard, clipboard, %A_Space%%A_Space%, %A_Space%, All | aus 2 leerzeichen eins zu machen, mit zeichen geht das aber nicht mit %A_Space%
gruss! lamer |
|
| Nach oben |
|
 |
BoBo Gast
|
Verfasst am: Fr Nov 17, 2006 9:02 pm Titel: |
|
|
Nimm StringSplit mit A_Space als Delimiter.
Damit ermittelst du die Anzahl der Felder/Leerzeichen. Abhängig davon lässt sich ein String anschließend 'neuordnen'. |
|
| Nach oben |
|
 |
|
|
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten.
|
Powered by phpBB © 2001, 2005 phpBB Group Deutsche Übersetzung von phpBB.de
|