Quelltext Vergleichen

  • 23 Antworten
  • Letztes Antwortdatum
L

LenovoP780

Stamm-User
84
Hallo,

ich möchte von einer Seite den Quelltext vergleichen und bin dabei auf folgendes Problem gestoßen:

Code:
Neuigkeiten (68)
A1: Read File [ File:Tasker/Quelltext.txt To Var:%var1 ] 
A2: Read File [ File:Tasker/Quelltext.txt To Var:%var2 ] 
A3: If [ %var1 ~ %var2 ]
A4: Flash [ Text:Test bestanden! Long:Off ] 
A5: Else 
A6: Flash [ Text:Test NICHT bestanden! Long:Off ]

Obwohl es die selbe Datei ist wird der Test nicht bestanden. Erstelle ich MD5-Hash von %var1 und %var2 dann stimmen die überein. Und wenn ich in die .txt-Datei einen kurzen Text reinschreibe, dann besteht der Task den Test auch.

Weiß jemand woran das liegen kann?

LG
 
Jetzt wäre interessant wie die Eingabenaske von dem If aussieht.
Ich hab es mal einfach getestet indem ich %v1 und v2 jewils mit abc gefüllt habe. Bei %v1 - %v2 ohne Hakerl bei Mathematik bekomme ich abc - abc. Mit Mathematik einen Fehler.
 
Und was bedeutet das jetzt? :)
 
Vergiß alles, am Handy hab ich ein - statt der Wellenline gelesen.
 
  • Danke
Reaktionen: LenovoP780
Wie lange sind die Dateien ca? Hast du evtl. ein Beispiel?
 
Müssen gar nicht lang sein, hatte das Problem schon mal - nur dachte ich, dass es damals an meiner Unfähigkeit liegt. Ich konnte den Quelltext damals nach einem bestimmten Wort filtern und bin das Problem damit umgangen.

Als Beispiel kann ich dir die Google-Startseite geben- da passiert das auch.
 
Ist bei mir leider auch so, liegt dann vermutlich Tasker, dass es einfach zu groß ist.
 
Wieso schneidet er dann den zu langen Teil nicht weg und vergleicht das, was ihm nicht zu lang ist?

Jetzt würde ich natürlich gerne wissen, was zu lang ist,...

Vielleicht frage ich mal beim Entwickler nach und dann frag ich auch gleich, warum man nicht mehr als 4 State-Bedingungen pro Profil verwenden kann ;-)
 
du könntest alternativ mit shell befehl und diff versuchen
 
Habe leider noch nie mit Shell-Befehlen gearbeitet.

Gibt es im Netz eine Sammlung von Shell-Befehlen für Android? Oder irgendwo eine kurze Anleitung, wie man Shell-Befehle in Tasker realisiert?
 
dann wirds zeit :)

die standart toolbox befehle dürften diese hier sein
Code:
BSD_TOOLS := \
    cat \
    chown \
    cp \
    dd \
    du \
    grep \
    kill \
    ln \
    mv \
    printenv \
    rm \
    rmdir \
    sleep \
    sync \

OUR_TOOLS := \
    chcon \
    chmod \
    clear \
    cmp \
    date \
    df \
    dmesg \
    getenforce \
    getevent \
    getprop \
    getsebool \
    hd \
    id \
    ifconfig \
    iftop \
    insmod \
    ioctl \
    ionice \
    load_policy \
    log \
    ls \
    lsmod \
    lsof \
    md5 \
    mkdir \
    mknod \
    mkswap \
    mount \
    nandread \
    netstat \
    newfs_msdos \
    nohup \
    notify \
    ps \
    readlink \
    renice \
    restorecon \
    prlimit \
    rmmod \
    route \
    runcon \
    schedtop \
    sendevent \
    setenforce \
    setprop \
    setsebool \
    smd \
    start \
    stop \
    swapoff \
    swapon \
    top \
    touch \
    umount \
    uptime \
    vmstat \
    watchprops \
    wipe \

die von busybox (evtl. ein paar mehr/weniger je nach version)
Code:
BusyBox v1.22.1 bionic (2015-04-19 11:45 +0200) multi-call binary.
BusyBox is copyrighted by many authors between 1998-2012.
Licensed under GPLv2. See source distribution for detailed
copyright notices. Merged for bionic by tpruvot@github

Usage: busybox [function [arguments]...]
   or: busybox --list[-full]
   or: busybox --install [-s] [DIR]
   or: function [arguments]...

	BusyBox is a multi-call binary that combines many common Unix
	utilities into a single executable.  Most people will create a
	link to busybox for each function they wish to use and BusyBox
	will act like whatever it was invoked as.

[B]Currently defined functions:[/B]
	[, [[, adjtimex, arp, ash, awk, base64,
	basename, bbconfig, blkid, blockdev,
	brctl, bunzip2, bzcat, bzip2, cal, cat,
	catv, chattr, chcon, chgrp, chmod, chown,
	chroot, chvt, clear, cmp, comm, cp, cpio,
	crond, crontab, cut, date, dc, dd,
	deallocvt, depmod, devmem, df, diff,
	dirname, dmesg, dnsd, dos2unix, du, echo,
	ed, egrep, env, expand, expr, false,
	fbsplash, fdisk, fgconsole, fgrep, find,
	findfs, flash_lock, flash_unlock,
	flashcp, flock, fold, free, freeramdisk,
	fstrim, fsync, ftpget, ftpput, fuser,
	getenforce, getopt, getsebool, grep,
	groups, gunzip, gzip, halt, head,
	hexdump, hwclock, id, ifconfig, inetd,
	insmod, install, ionice, iostat, ip,
	kill, killall, killall5, less, ln,
	losetup, ls, lsattr, lsmod, lsof, lspci,
	lsusb, lzcat, lzma, lzop, lzopcat, man,
	matchpathcon, md5sum, mesg, mkdir,
	mkdosfs, mke2fs, mkfifo, mkfs.ext2,
	mkfs.vfat, mknod, mkswap, mktemp,
	modinfo, modprobe, more, mount,
	mountpoint, mpstat, mv, nanddump,
	nandwrite, nbd-client, nc, netstat, nice,
	nmeter, nohup, nslookup, ntpd, od,
	openvt, patch, pgrep, pidof, ping,
	pipe_progress, pkill, pmap, poweroff,
	printenv, printf, ps, pstree, pwd, pwdx,
	rdate, rdev, readlink, realpath, reboot,
	renice, reset, resize, restorecon, rev,
	rm, rmdir, rmmod, route, run-parts,
	runcon, rx, sed, selinuxenabled, seq,
	sestatus, setconsole, setenforce,
	setfiles, setkeycodes, setsebool,
	setserial, setsid, sh, sha1sum,
	sha256sum, sha3sum, sha512sum, sleep,
	smemcap, sort, split, stat, strings,
	stty, sum, swapoff, swapon, switch_root,
	sync, sysctl, tac, tail, tar, taskset,
	tee, telnet, telnetd, test, tftp, tftpd,
	time, timeout, top, touch, tr,
	traceroute, true, ttysize, tune2fs,
	umount, uname, uncompress, unexpand,
	uniq, unix2dos, unlzma, unlzop, unxz,
	unzip, uptime, usleep, uudecode,
	uuencode, vi, watch, wc, wget, which,
	whoami, xargs, xz, xzcat, yes, zcat

Die busybox sachen zeigen in der regel ein (kleine) hilfe zu den möglichen optionen mit --help (oder befehl ohne irgendwas, je nach befehl). Die toolbox sachen kennen in der regel leider kein --help (allerdings kommt bei fehlerhafter eingabe bzw. ganz ohne parameter, je nach befehl auch eine (noch kleinere) hilfe zu den befehlen ). Manche sachen sind auch in der toolbox und busybox vorhanden, dann wird normal der toolbox befehl verwendet (außer man benutzt busybox befehl. Ob ein befehl von toolbox oder busybox kommt kannst du mit which oder type befehl nachsehen).
Eine andere möglichkeit um etwas über einen befehl zu erfahren ist nach manpage Befehl zu googlen, dann kommt man eigentlich immer auf die unix oder linux hilfeseite, allerdings kanns sein das nicht alle optionen bei android zur verfügung stehen
 
  • Danke
Reaktionen: LenovoP780
Trotzdem wäre es aber interessant zu wissen, was Tasker denn da macht...
Code:
Test (42)
	<Start>
	A1: Anchor 
	A2: HTTP Get [ Server:Port:https://www.android-hilfe.de/forum/tasker.493/quelltext-vergleichen.683117-page-2.html Path: Attributes: Cookies: User Agent: Timeout:10 Mime Type: Output File:/storage/sdcard1/data/tasker/test.txt Trust Any Certificate:Off ] 
	A3: Read File [ File:/storage/sdcard1/data/tasker/test.txt To Var:%var1 ] 
	A4: Read File [ File:/storage/sdcard1/data/tasker/test.txt To Var:%var2 ] 
	A5: If [ %var1 ~ %var2 ]
	A6: Flash [ Text:Equal Long:Off ] 
	A7: Else 
	A8: Flash [ Text:Not equal Long:Off ] 
	A9: End If
Funktioniert bei mir wie erwartet...

Grüße, Jürgen.
 
... und es gibt immer noch den Bug bei der Visualisierung von If mit lokalen Variablen:

Screenshot_2015-04-27-03-35-23.png

Grüße, Jürgen.
 
Hallo,

liegt wohl am Quelltext - wenn ich ebenfalls den Link von hier nehme klappt es bei mir auch.

Probier mal google.com aus, da klappt es bei mir z.B. nicht.

Edit: Den Bug kann ich bestätigen ;-)
 
LenovoP780 schrieb:
Probier mal google.com aus, da klappt es bei mir z.B. nicht.

Kann ich nachvollziehen...

Also mit meinem Handy, aber nicht im Kopf :confused2:
 
  • Danke
Reaktionen: LenovoP780
So jedensfalls müsste es mit diff gehen (logcat, b ist eine kopie von a)

Diff (56)
A1: Run Shell [ Command:diff -q /sdcard/a.txt /sdcard/c.txt Timeout (Seconds):0 Use Root:Off Store Output In:%diff Store Errors In: Store Result In: Continue Task After Error:On ]
A2: If [ %diff !Set ]
A3: Flash [ Text:same same Long:Off ]
A4: Else
A5: Flash [ Text:%diff Long:Off ]
 

Anhänge

  • Screenshot_2015-04-27-11-03-42.png
    Screenshot_2015-04-27-11-03-42.png
    18,4 KB · Aufrufe: 243
  • Screenshot_2015-04-27-11-03-50.png
    Screenshot_2015-04-27-11-03-50.png
    21,1 KB · Aufrufe: 223
  • Danke
Reaktionen: LenovoP780
Hallo und täglich grüßt das Murmeltier!

Habe mal wieder ein Profil bei dem ich den Quelltext vergleichen will und das Problem das Tasker %var1 ~ %var2 noch immer nicht will.

Hab den Quelltext schon auf ein Minimum gekürzt (2 kurze Zeilen) doch trotzdem will es nicht hinhauen...

Daher wollte ich mal nachfragen, ob jemand weiß woran es liegt?

Lg

Edit: Das hier wäre diesmal der Inhalt der Variablen "</h3></header><p class="bodytext">(Stand: 10: Juli 2015)".
 
Zuletzt bearbeitet:
Habe jetzt etwas herumprobiert und nachdem ich beide "/" entfernt habe erkannte Tasker die Variablen als ident an.

Da '/' allerdings in jeden Quelltext vorkommen verstehe ich nicht warum es bei gewissen Websites klappt und in anderen Fällen wiederum nicht.

Das sagt übrigens Tasker-Hilfe dazu " / means 'or', it divides up multiple possible matches".
 
Ja - die "Diskussion" hatten wir schon. Der Quelltext der AH-Seite funktioniert, auch bei mir.
 

Ähnliche Themen

L
Antworten
15
Aufrufe
2.811
LenovoP780
L
M
Antworten
4
Aufrufe
1.779
Hagbard235
H
Zurück
Oben Unten