Dynaisches Lesen des Editors

Für alles, was in den übrigen Lazarusthemen keinen Platz, aber mit Lazarus zutun hat.
Antworten
Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Dynaisches Lesen des Editors

Beitrag von Maik81SE »

Moin @ll,

ich hab da wohl die mit Abstand bescheuerteste Frage, welche uns sicherlich mal unter die Augen gekommen ist.

euch ist doch bestimmt schon diese Meldung oft genug unter die Augen gekommen?
Bildschirmfoto_2022-10-21_20-22-45.png
Bildschirmfoto_2022-10-21_20-22-45.png (32.38 KiB) 1019 mal betrachtet
Weiß jemand zufällig, nach welches System der Editor die geöffneten Programm-Dateien prüft?

Ich suche eine mgl eine txt nur zu lesen.

Der einfachste weg wäre ja folgender...

Code: Alles auswählen

S.LoadFromFile('/run/user/1000/gvfs/smb-share:server=dj-vj-system.local,share=dj-vj-rechner/Mixxx/NOW-PLAYING/mixxx-now-playing-master/mixxx-now-playing.txt');
ich könnte auch den Versuche unternehmen, die File via sbm oder co aller 5 sec von Quell PC auf den Ziel PC zu kopieren, was bei maximal 1kb ja eigentlich nicht das Thema ist, aber muß man(n) diesen Trafik erzeugen?

EDIT

Die File wird auf dem andere System durch folgendes bash erstellt und regelmäsig geändert.

Code: Alles auswählen

#!/usr/bin/env bash

TXTFILE=~/Musik/Mixxx/NOW-PLAYING/mixxx-now-playing-master/mixxx-now-playing.txt

# Done: Ändern des Zielverzeichnis

touch $TXTFILE
# TODO: fail here if the file is not writeable

echo " "  > $TXTFILE
OS=`uname`

echo "Detected OS: $OS"

while true; do
	while pgrep -i mixxx > /dev/null; do
	
	if [ $OS == "Linux" ]; then
		xdotool search --name "\| Mixxx" getwindowname |
		cut -d\| -f1 |
		sed 's/,/ -/' |
		awk '{ print tolower($0) }' |
		ascii2uni -aU -q|
		awk '{ print toupper($0) }' |
		sed 's/$/          /' > $TXTFILE
	elif [ $OS == "Darwin" ]; then
		python -c " 
import Quartz
print(Quartz.CGWindowListCopyWindowInfo(Quartz.kCGWindowListExcludeDesktopElements|Quartz.kCGWindowListOptionAll,Quartz.kCGNullWindowID))
" | 
		grep "| Mixxx" | 
		cut -d'"' -f 2 |
		cut -d\| -f1 |
		sed 's/,/ -/' |
		awk '{ print tolower($0) }' |
		ascii2uni -aU -q|
		awk '{ print toupper($0) }' | 
		sed 's/$/          /' > $TXTFILE
	fi

	# TODO: don't write the file if the value is the same (better for disk I/O)
	# TODO: unify write command for both OSs
	sleep 5
	done


sleep 60
done

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

[Gelöst] Dynaisches Lesen des Editors

Beitrag von Maik81SE »

Code: Alles auswählen

    if not CheckBox2.Checked then
Schon scheiße, wenn man die Falsche Kombonente abfragt.

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

PascalDragon
Beiträge: 830
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Dynaisches Lesen des Editors

Beitrag von PascalDragon »

Maik81SE hat geschrieben:
Fr 21. Okt 2022, 20:44
Weiß jemand zufällig, nach welches System der Editor die geöffneten Programm-Dateien prüft?
Lazarus macht dies sobald es wieder den Fokus erhält und prüft einfach von allen geöffneten Dateien die Modified Times (deswegen kommt der Dialog auch jedes Mal, wenn man die IDE über den Wechsel von Normalzeit auf Sommerzeit und umgekehrt laufen lässt).
Maik81SE hat geschrieben:
Fr 21. Okt 2022, 20:44
Ich suche eine mgl eine txt nur zu lesen.
Mir ist noch nicht wirklich klar was dein Ziel ist: möchtest du eine Datei erneut auslesen, wenn sie sich geändert hat?
FPC Compiler Entwickler

Benutzeravatar
Maik81SE
Beiträge: 308
Registriert: Fr 30. Sep 2011, 14:07
OS, Lazarus, FPC: Debian 12 (L 3.0.0.3 FPC 3.2.2); Windows 10 (L 3.99.0.0 FPC 3.2.0)
CPU-Target: x86-64; arm; avr
Wohnort: Lübeck
Kontaktdaten:

Re: Dynaisches Lesen des Editors

Beitrag von Maik81SE »

PascalDragon hat geschrieben:
So 23. Okt 2022, 17:14
Lazarus macht dies sobald es wieder den Fokus erhält und prüft einfach von allen geöffneten Dateien die Modified Times (deswegen kommt der Dialog auch jedes Mal, wenn man die IDE über den Wechsel von Normalzeit auf Sommerzeit und umgekehrt laufen lässt).
Nur wenn die IDE den Fokus bekommt?

Hab öfters den eindruck bekommen, das die Meldung auch kommt, wenn man Projekt-Files zB in Bluefish bearbeitet. o.O

Code: Alles auswählen

label.caption:= 'gnublin.no-ip.info'
Debian 12 (L 3.0.0.3 FPC 3.2.2);
windows 10 (L 3.99.0.0 FPC 3.2.0)

PascalDragon
Beiträge: 830
Registriert: Mi 3. Jun 2020, 07:18
OS, Lazarus, FPC: L 2.0.8, FPC Trunk, OS Win/Linux
CPU-Target: Aarch64 bis Z80 ;)
Wohnort: München

Re: Dynaisches Lesen des Editors

Beitrag von PascalDragon »

Maik81SE hat geschrieben:
Mo 31. Okt 2022, 18:15
PascalDragon hat geschrieben:
So 23. Okt 2022, 17:14
Lazarus macht dies sobald es wieder den Fokus erhält und prüft einfach von allen geöffneten Dateien die Modified Times (deswegen kommt der Dialog auch jedes Mal, wenn man die IDE über den Wechsel von Normalzeit auf Sommerzeit und umgekehrt laufen lässt).
Nur wenn die IDE den Fokus bekommt?

Hab öfters den eindruck bekommen, das die Meldung auch kommt, wenn man Projekt-Files zB in Bluefish bearbeitet. o.O
Und wenn du sie bearbeitet hast, dann wechselst du wieder zu Lazarus zurück, das heißt die IDE bekommt wieder den Fokus und stellt fest, dass die Dateien geändert wurden.
FPC Compiler Entwickler

Antworten