Klingt eigentlich zu offensichtlich .
Hast Du mal angefragt, ob es den Katalog in einer maschinenlesbaren Datei (z.B. XML/CSV) gibt.
Normalerweise haben Lieferanten ja ein Interesse, dass möglichst viele Kunden bestellen.
Klingt eigentlich zu offensichtlich .
Hast Du mal angefragt, ob es den Katalog in einer maschinenlesbaren Datei (z.B. XML/CSV) gibt.
Normalerweise haben Lieferanten ja ein Interesse, dass möglichst viele Kunden bestellen.
Nur in Sachen Küche... da bleibt anzumerken Parkett / Laminat in der Küche wo soll das Problem liegen?
Ich habe in Wohnzimmer, Flur, Küche und Schlafzimmer ein hochwertiges Laminat (inkl. Schallschutzunterlage) verlegen lassen (nicht Baumarkt-Standard für 12,99 EUR/qm ).
Kritische Bereiche, z.B. Arbeitsplatz mit rollfähigem Stuhl / Heimtrainer, wurden mit einer semitransparente Bodenschutzmatte versehen - ansonsten Filzaufkleber unter die Möbel. Alles top.
Im Bad habe ich mich allerdings für Fliesen entschieden. Laut Aussage des Fliesenlegers könnte Laminat aufgrund der Feuchtigkeit aufquellen. Ob das stimmt, oder nur der Profitmaximierung geschuldet ist, kann ich nicht beurteilen.
Hi Lina !
Wie feiert ihr die Jahreswende? Was gibt es traditionell bei euch zu essen? Habt ihr euch Knallkörper & Co. gekauft?
Da ich am 5. Januar eine Corona-Auffrischungsimpfung bekomme (die erste an Omikron angepasste) , wird im engsten Familienkreis gefeiert. Wäre ja ziemlich blöd, sich 5 Tage vorher noch das Virus reinzufeiern .
Auf der Speisekarte steht :
Warmer Kartoffelsalat mit Kräutern (auf Basis einer Brühe), sowie Frikadellen - natürlich alles selbstgemacht.
Etwas Pyrotechnik habe ich seit langem mal wieder gekauft, um die bösen Geister von 2022 zu vertreiben. Allerdings nur Sachen ohne Lärm, d.h. Vulkane und ähnliche visuelle Effekte .
Ich wünsche allen ein glückliches und gesundes Jahr 2023 .
Gruß, Musashi
Eine andere Möglichkeit wäre sicherlich zu prüfen ob das Fenster geladen ist - aber wie?
Versuche es mal mit z.B. WinWait
Du bearbeitest den DLL Kernel? Wenn ja, woher weiß man was warum usw?
Ich bin auf diesem Gebiet kein Fachmann
Beispiel :
Local $ret = DllCall('kernel32.dll', 'long', 'DefineDosDeviceA', _ 'long', $iFlag, 'str', $sDeviceName, 'str', $sTargetPath)
Schau Dir mal definedosdevicea an.
So eine Idee : Vielleicht sollte man die KI mal 2 vollkommen konträre Dinge fragen deren Lösung nicht so schwer ist.
1) Wie baue ich eine Atombombe
... und 2 Stunden später steht ein SEK der Polizei vor der Haustür .
Was sind denn das für Gerüchte?
Also ich möchte es nicht ausschließen, kann es aber nicht mit Sicherheit bejahen. Mal gucken, ob ich da noch was finde.
Im EN-Forum gibt es einen Beitrag von @progandy :
Dort wird eine UDF von Dir erwähnt, leider nur der Header. Der Link selbst ist mal wieder Opfer eines Forumsupdates geworden. Ggf. hilft Dir die Info aber beim Suchen .
ZitatThe SUBST-command can be simulated with these funcs: http://www.autoit.de/index.php?page=Thread...69362#post69362 This is the translated UDF-info:
Code Alles anzeigen;================================================================================================== ; Function Name: _PartialDrive($sDeviceName=-1, $sTargetPath=-1, $iDelete=0) ; Description:: Creates or removes a Virtual Drive. The Drive will ; be romved automatically on shutdown. ; Parameter(s): $sDeviceName Driveletter of the Drive to create / delete ; -1 first free Driveletter (default) ; $sTargetPath Path to link the driveletter to, -1= Create: link to @MyDocumentsDir (default) ; Delete: the path connected with the driveletter will be found automatically. ; optional: $iDelete 0=Creation (default); 1=Deletion of the Drive ; Return Value(s): Success Driveletter of the created/deleted virtual Drive ; Fehler 0 @error=1 given driveletter already existing (only when creating) ; @error=2 no free driveletter available (only when creating) ; @error=3 no valid path to link to ; @error=4 Action failed ; @error=5 no valid drive to delete ; Author(s): BugFix (bugfix@autoit.de) ; Modified: Prog@ndy (translated info) ;==================================================
Musashi : Da bin ich grundsätzlich anderer Meinung. Ein Haftungsrisiko zu umgehen indem man "Idiotenantworten" gibt macht keinen Sinn.
Ich habe auch nicht behauptet, dass das Sinn machen würde, sondern mich nur gefragt, ob es ein denkbarer Grund für "Idiotenantworten" wäre
Also JETZT fühle ich mich total verarscht.
Ich halte es für denkbar, dass Fragen, deren Beantwortung ein erhebliches (Haftungs-)risiko beinhalten (Strom, Medikamente, der Bau von Waffen usw.) mit Absicht 'schwammig' ausfallen.
Das Tool kann mit txt Formaten umgehen .... was müsste man tun, um dem Tool das verstehen von anderen Formaten beizubringen?
Wie erwähnt, habe ich das Tool nicht geschrieben (ich habe Nine lediglich bei Testen geholfen und 2, 3 Anregungen beigesteuert).
Grundsätzlich können alle textbasierten Formate, also z.B. auch *.csv, *.pas usw., durchsucht werden.
... andererseits aber auch ein selteneres "Office" Paket - dessen Format kein Suchprogramm kann
Kannst Du das Format, z.B. mit Notepad++, öffnen ?
Hi Alina !
Noch einmal zu :
Vielleicht, wenn es @Nine erlaubt, kann ich es ja übersetzen.
Obwohl ich mir sicher war, dass @Nine damit keine Probleme hat, habe ich ihn gefragt. Schließlich möchten wir ja wissen, nicht nur vermuten .
Hier die Antwort von @Nine aus unserer PM (wie erwartet) :
Zitat"I am happy someone likes my tool, feel free to let them know that they can do whatever they want with it. Just glad that the tool I personally use every day can help some others."
(übersetzt)
"Ich freue mich, dass mein Tool anderen gefällt. Du kannst sie gerne wissen lassen, dass sie damit machen können, was sie wollen. Ich freue mich einfach, dass das Tool, das ich persönlich jeden Tag benutze, anderen helfen kann."
Alina :
Einer Übersetzung steht also nicht im Wege .
Wir können den modifizierten Code dann ja dem Startbeitrag dieses Threads hinzufügen.
Gruß Musashi
Das Tool verwende ich ja nun auch und ich habe es durchgetestet. TOP !
Vielleicht, wenn es Nine erlaubt, kann ich es ja übersetzen.
Ich bin mir sicher, dass Nine kein Problem damit hätte. Er hat sich im Quellcode ja nicht mal als 'Ersteller' angegeben.
Ich hatte übrigens schon vor geraumer Zeit mit ihm über die Vorstellung im DE-Forum gesprochen. Deine Frage hat mich daran erinnert, dass auch endlich mal zu tun .
Edit :
Ich frage mich allerdings, ob eine Übersetzung, aufgrund der wenigen Sprachelemente. wirklich nötig ist. Search , Open und Select Folder sollte eigentlich von allen verstanden werden. Zudem habe ich die Arbeitsweise des Tools ja bereits beschrieben.
Da viele deutsche User:innen nicht, oder nur unregelmäßig, im englischen Forum aktiv sind, möchte ich hier ein kleines, aber feines Searchtool vorstellen (ist mit dem Autor abgesprochen) :
Autor : Nine (aus dem EN-Forum)
Download, Changelog und Thread : searching-specific-content-in-text-file-or-au3
Das Programm ist im Wesentlichen selbsterklärend.
Als Basisordner sind C:\Applications\AutoIt und C:\Program Files (x86)\AutoIt3\Include eingestellt. Wer möchte, kann dies im Quellcode anpassen/erweitern.
Klickt man auf den Button Folder, dann erscheint eine Ordnerauswahl ausgehend von dem Verzeichnis, in dem sich das Tool befindet.
Der Dateifilter ist per Default auf *.au3 eingestellt.
Man kann dort aber auch z.B. *.txt, oder sogar mehrere Filter (Dateitypen), getrennt durch Semikolon, eintragen. Beispiel : *.au3;*.txt
In Text to search gibt man den zu suchenden String an und kann nun den Button Search klicken. Das Tool durchläuft nun den gewählten Basisordner (Folder), sowie mögliche Unterverzeichnisse.
Anschließend wird eine Liste aller Dateien angezeigt, die den gesuchten String enthalten.
Klickt man auf einen Dateinamen, so werden alle Treffer innerhalb dieser Datei angezeigt (von mir im Screenshot orange umrandet).
Mit dem Button Open kann die Datei im jeweils eingestellten Editor geöffnet werden.
@Nine erhebt selbstverständlich nicht den Anspruch, professionelle Suchprogramme wie z.B. Agent Ransack zu ersetzen.
Ich und viele andere User nutzen sein Tool aber gerne. Zudem ist der Quellcode ein gutes Anschauungsobjekt.
Gruß Musashi
Es ist auch gut möglich, dass die Lernkurve von Einsteigern durch die vielen vorhandenen UDFs eher abgeflacht wird.
Da ist sicher etwas dran.
Ich gebe aber zu bedenken, dass viele Einsteiger möglicherweise gar nicht den Anspruch haben, "Programmierer" zu werden. Ihnen geht es häufig "nur" darum, mit kleineren Skripten ihre Alltagsaufgaben zu bewältigen. Genau dabei helfen die vorhandenen UDF's.
Auch viele Fortgeschrittene hätten sicher wenig Lust, die ganzen Räder (UDF's) selbst neu zu erfinden .
Es besteht natürlich immer die Möglichkeit, dass ein Stick defekt ist.
Ich tippe hier aber mal auf das, was Moombas geschrieben hat, die Blockgröße.
Gibt es da eine Möglichkeit "Suche nach Schlagwort im Ordner xyz incl. Unterordner und zwar in den Dateiinhalten" ?
Der bekannte User Nine hat im englischen Forum ein nettes kleines Searchtool (geschrieben in AutoIt) veröffentlicht.
searching-specific-content-in-text-file-or-au3
Eine weitere Möglichkeit wäre Agent Ransack (in der Basis- / Lite-Version kostenlos)
Und bei "Standard" bekomme ich regelmäßigst Zustände, denn das impliziert ja genau, möglichst die Finger davon zu lassen, irgendwer anderes wird die Funktion/Software/API schon geprüft haben und somit wird einem schon irgendwer anderer "den Arm aus der Sonne legen" wenn eine Änderung/Anpassung erforderlich ist.
Mit Standard-UDF war lediglich gemeint, dass diese UDF zum Lieferumfang der AutoIt-Installation gehört, und bei Änderungen im Defaultverzeichnis nicht 'updatesicher' ist (daher mein Vorbehalt).
Ich wollte weder den Begriff Standard generell zum sakrosankten Qualitätsmerkmal erheben, noch implizieren, das eigene Denken einzustellen. Selbstverständlich darf und sollte man Code hinterfragen und bei Bedarf den eigenen Bedürfnissen anpassen - bin also völlig Deiner Meinung .
EDIT: die Sender werden im TV mit Umlauten angezeigt Ein paar Sender in fremder Sprache oder verschlüsselte haben sich eingeschlichen, weil sie namentlich mit den deutschen Sendern identisch sind. Alles in allem spart es aber eine Menge an Zeit gegenüber den gängigen Programmen! Habe noch ein paar Ideen dazu, möchte den Bogen aber nicht überspannen
Freut mich, dass es funktioniert .
Beschreibe einfach Deine neuen Ideen. Ob und wann der Bogen überspannt ist, können die Helfenden ja selbst entscheiden.
auch hier sind es nur Sender mit Umlauten
Prüf mal in Notepad++ welches Format die Original-Datei hat (UTF8 etc.).
Ggf. braucht der TV ein bestimmtes Format und hat daher damit Probleme.
Ja, es ist ein Problem mit der Kodierung.
Versuche mal :
#include <File.au3>
#include <Array.au3>
Local $sNETSource, $aNETList, $sNETChannel, $sPattern
Local $aSDXList, $aSDXListNew[0], $sSDXChannel
Local $sFilePath, $hFileOpen
$sNETSource = BinaryToString(InetRead("https://www.satindex.de/tv/1/1/0/"), 4)
$sPattern = '<div class="col freqx_1" >.*?">(.*?)</a></div>'
$aNETList = StringRegExp($sNETSource, $sPattern, 3) ; unter col freqx_1 sind die Sendernamen gelistet
; INFO : Aufbau der Fernsehliste.sdx
; ----------------------------------
; Beispielzeile (Zeilenumbruch @LF) :
; SATCODX103Astra 1 (19.2E) TMPG20113030001ServusTV0192___ ______220002____________049140000101007_____________ HD Deutschl
; Die Sendernamen sind gesplittet, aber immer an festen Positionen.
; ==> max 8 Zeichen an Position 44..52 und (falls länger) max 12 Zeichen an Position 116..128
; Der Sendername aus der .SDX-Datei ist max. 20 Zeichen lang, z.B. :
; ServusTV HD Deutschl
; Zu beachten : Die Senderliste aus dem Netz enthält die vollständigen Namen, also z.B. :
; ServusTV HD Deutschland -> wird auf 20 Zeichen gekürzt
; Einlesen der Fernsehliste.sdx (Kodierung=ANSI) in ein Array :
_FileReadToArray(@ScriptDir & "\Fernsehliste.sdx", $aSDXList, $FRTA_NOCOUNT)
For $iSDX = 0 To UBound($aSDXList) - 1
$sSDXChannel = StringStripWS(StringMid($aSDXList[$iSDX], 44, 8) & StringMid($aSDXList[$iSDX], 116, 12), 3)
For $iNet = 0 To UBound($aNETList) - 1
$sNETChannel = StringStripWS(StringLeft($aNETList[$iNet], 20), 3)
If $sSDXChannel = $sNETChannel Then
_ArrayAdd($aSDXListNew, $aSDXList[$iSDX])
EndIf
Next
Next
; Neues Array mit den Treffern :
_ArrayDisplay($aSDXListNew, "Treffer-Array") ; *** nur zur Anzeige beim Test
; ==> Array in eine neue Datei schreiben (ANSI) :
$sFilePath = @ScriptDir & "\Fernsehliste-Neu.sdx"
$hFileOpen = FileOpen($sFilePath, BitOR($FO_OVERWRITE, $FO_ANSI))
If $hFileOpen = -1 Then
Exit MsgBox(BitOR(4096, 16), "Message :", "Es ist ein Fehler aufgetreten" & @CRLF)
EndIf
_FileWriteFromArray($hFileOpen, $aSDXListNew)
Alles anzeigen
Hi Moombas :
Deine Frage, ob sich InetRead bzw. _InetGetSource anders verhalten als Rechtsklick - Speichern hat AspirinJunkie ja bereits beantwortet.
(war auch keine Unterstellung, dass Du Deine RegEx nicht geprüft hättest )
Dazu einfach in der Funktion _FileWriteFromArray() (erreichbar in Scite über CTRL-J ) das @CRLF nur durch ein @LF austauschen. Falls das nötig sein sollte....ansonsten die Funktion anpassen bzw. auf eigene Bedürfnisse umschreiben.
Sehe ich auch so, Ich wollte dieselwiesel nur nicht vorschlagen, die Standard-UDF diesbzgl. zu ändern.
Am Besten wäre es natürlich, wenn die Entwickler das per Parameter geregelt hätten. Gleiches gilt auch dafür, ob der letzten Zeile eine Umbruchssequenz angefügt wird oder nicht.
(Es ist bald Weihnachten - da darf sich man so etwas ja mal wünschen )
Falls @CRLF zu Problemen führt, kannst Du, wie von Andy vorgeschlagen, eine modifizierte Variante, z.B. mit einem Funktionsnamen wie _FileWriteFromArrayMod() in Dein Skript einfügen.
Alternativ kannst Du das neue Array auch mit FileOpen -> Zeilen mit FileWrite in eine Datei schreiben.
Kann man die SDX z.B. mit FileReadToArray zeilenweise einlesen und dann per Suchmuster die Zeilen löschen wo es nicht passt?
Eine Möglichkeit wäre z.B. , die Daten beider Arrays abzugleichen, die Treffer in ein neues Array einzufügen und dieses zu speichern.
#include <File.au3>
#include <Array.au3>
#include <Inet.au3>
Local $sNETSource, $aNETList, $sNETChannel, $sPattern
Local $aSDXList, $aSDXListNew[0], $sSDXChannel
$sNETSource = BinaryToString(_INetGetSource("https://www.satindex.de/tv/1/1/0/", 0), 4) ; UTF8
$sPattern = '<div class="col freqx_1" >.*?">(.*?)</a></div>'
$aNETList = StringRegExp($sNETSource, $sPattern, 3) ; unter col freqx_1 sind die Sendernamen gelistet
; INFO : Aufbau der Fernsehliste.sdx
; ----------------------------------
; Beispielzeile (Zeilenumbruch @LF) :
; SATCODX103Astra 1 (19.2E) TMPG20113030001ServusTV0192___ ______220002____________049140000101007_____________ HD Deutschl
; Die Sendernamen sind gesplittet, aber immer an festen Positionen.
; ==> max 8 Zeichen an Position 44..52 und (falls länger) max 12 Zeichen an Position 116..128
; Der Sendername aus der .SDX-Datei ist max. 20 Zeichen lang, z.B. :
; ServusTV HD Deutschl
; Zu beachten : Die Senderliste aus dem Netz enthält die vollständigen Namen, also z.B. :
; ServusTV HD Deutschland -> wird auf 20 Zeichen gekürzt
; Einlesen der Fernsehliste.sdx in ein Array :
Local $aSDXList, $aSDXListNew, $sSDXChannel
_FileReadToArray(@ScriptDir & "\Fernsehliste.sdx", $aSDXList, $FRTA_NOCOUNT)
For $iSDX = 0 To UBound($aSDXList) - 1
$sSDXChannel = StringStripWS(StringMid($aSDXList[$iSDX], 44, 8) & StringMid($aSDXList[$iSDX], 116, 12), 3)
For $iNet = 0 To UBound($aNETList) - 1
$sNETChannel = StringStripWS(StringLeft($aNETList[$iNet], 20), 3)
If $sSDXChannel = $sNETChannel Then
_ArrayAdd($aSDXListNew, $aSDXList[$iSDX])
EndIf
Next
Next
; Neues Array mit den Treffern :
_ArrayDisplay($aSDXListNew, "Treffer-Array") ; *** nur zur Anzeige beim Test
; ==> Array in eine neue Datei schreiben :
_FileWriteFromArray(@ScriptDir & "\Fernsehliste-Neu.sdx", $aSDXListNew)
Alles anzeigen
Ein mögliches Problem ist, dass die Funktion _FileWriteFromArray als Zeilenabschluss @CRLF anhängt.
Falls nur ein @LF zulässig sein sollte, muss das neue Array manuell gespeichert werden.