Deutsches AutoHotkey Homepage AutoHotkey Community
Wir helfen uns gegenseitig aus der Patsche
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

if clipboard = >leer<

 
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe!
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
lamer



Anmeldedatum: 15.10.2006
Beiträge: 64

BeitragVerfasst am: Do Nov 09, 2006 11:03 pm    Titel: if clipboard = >leer< Antworten mit Zitat

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 Cool

Code:
if clipboard =
        gosub clipboard_leer
        firma0 = % ClearString(sIn)
        goto weitermachen
firma0 = %clipboard%
weitermachen:
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Fr Nov 10, 2006 7:03 am    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lamer



Anmeldedatum: 15.10.2006
Beiträge: 64

BeitragVerfasst am: Fr Nov 10, 2006 1:08 pm    Titel: Antworten mit Zitat

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 Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Fr Nov 10, 2006 1:19 pm    Titel: Antworten mit Zitat

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 Wink

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo
Gast





BeitragVerfasst am: Fr Nov 10, 2006 2:15 pm    Titel: Antworten mit Zitat

LeaveOnlyNumbers = StripNonIntegers Wink
Nach oben
lamer



Anmeldedatum: 15.10.2006
Beiträge: 64

BeitragVerfasst am: Fr Nov 10, 2006 3:52 pm    Titel: nochemal Antworten mit Zitat

öhm... ich schon wieder Smile 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 Smile
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Fr Nov 10, 2006 5:37 pm    Titel: Antworten mit Zitat

Das sieht doch gleich viel besser aus Very Happy

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 Smile
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 Wink

Thalon
_________________
Mein Motto: Hilfe zur Selbsthilfe!
Teildeutsche Hilfe (CHM)!! und Deutsche Online-Hilfe
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
BoBo
Gast





BeitragVerfasst am: Sa Nov 11, 2006 9:39 am    Titel: Antworten mit Zitat

Zitat:
ich besuche webseiten, dort gehe ich ins impressum und adde alle relevanten daten in meine excel-tabelle
Wofür?
Nach oben
AGU
Gast





BeitragVerfasst am: Sa Nov 11, 2006 11:38 am    Titel: Antworten mit Zitat

Vielleicht ist er so ein Abmahnanwalt. Wink Laughing

Code:
If Clipboard = ;Kein Impressum vorhanden
  GoSub, Run C:\Tools\Abmahnungswriter.exe
Else
  MsgBox, nächstes Opfer


Gruß
AGU
Nach oben
BoBo
Gast





BeitragVerfasst am: Sa Nov 11, 2006 10:43 pm    Titel: Antworten mit Zitat

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 Evil or Very Mad
Nach oben
lamer



Anmeldedatum: 15.10.2006
Beiträge: 64

BeitragVerfasst am: So Nov 12, 2006 8:51 pm    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
lamer



Anmeldedatum: 15.10.2006
Beiträge: 64

BeitragVerfasst am: Fr Nov 17, 2006 1:32 pm    Titel: firma0 := LeaveOnlyText() Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
Thalon



Anmeldedatum: 25.10.2005
Beiträge: 1889
Wohnort: Österreich

BeitragVerfasst am: Fr Nov 17, 2006 1:36 pm    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
lamer



Anmeldedatum: 15.10.2006
Beiträge: 64

BeitragVerfasst am: Fr Nov 17, 2006 6:48 pm    Titel: Antworten mit Zitat

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
Benutzer-Profile anzeigen Private Nachricht senden
BoBo
Gast





BeitragVerfasst am: Fr Nov 17, 2006 9:02 pm    Titel: Antworten mit Zitat

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
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    AutoHotkey Community Foren-Übersicht -> Ich brauche Hilfe! Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
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