Visualizza post

Questa sezione ti permette di visualizzare tutti i post inviati da questo utente. N.B: puoi vedere solo i post relativi alle aree dove hai l'accesso.


Post - pastrank

Pagine: [1] 2 3 ... 19
1
Programmazione / Re:Il path di una immagine in webview
« il: 10 Marzo 2025, 00:30:03 »
Ringrazio Gianluigi & vuott, mi avete dato non una ma due idee. Non e' un discorso retorico: a volte mi fa piu' comodo una cosa, a volte un'altra, e mi ero bloccato sulla mania di limare piu' righe di codice possibile. Alla fine, sono solo un click in piu' rispetto alla procedura precedente. Credo che in alto sulla form piazzero' un paio di bottoni, giusto per salvare o il link all'immagine, o la copia (ho provato il menu e in realta' funziona, non funzionava quando c'era l'altro mio contestuale.

2
Programmazione / Re:Il path di una immagine in webview
« il: 09 Marzo 2025, 22:48:01 »
Potresti usare la classe Clipboard (paste) usando il tasto destro "copy image"

Ma come faccio a usarla, in pratica? Suppongo

Copy image (se funziona, il menu contestuale sembra non far niente)
Salva l'immagine.

3
Programmazione / Re:Il path di una immagine in webview
« il: 09 Marzo 2025, 12:25:55 »
...ma l'immagine, presente nella pagina web, deve essere individuata cliccandovi con il puntatore del mouse ?

Per spiegarmi bene: io arrivavo sulla pagina, che essendo tipicamente un archivio (discogs, musicbrainz) conteneva queste immagini, che si chiamavano magari 340589058403958059.jpg. Io la salvavo con un nome sempre uguale, tipo cover.jpg, nella cartella dove stavo lavorando, che pero' poteva essere alla fine di un lungo e intricato albero. Semplicemente cliccavo con il tasto destro sopra l'immagine, mi appariva il mio menu popup, e da li' prendevo il nome e lo scaricavo all'interno della cartella, rinominandolo.
Ora e' arrivato QT6, e non si capisce nemmeno cosa c'e' e cosa no, per la documentazione scarsa e perche' QT6 dicono sia diverso, comunque quello che facevo e' deprecato e WebHitTest e' sparito (e comunque il menu contestuale del controllo mi appariva sempre prima del mio, anche se non funziona).
Ma non ho pretesa di continuare a fare come prima, ci sta che pensandoci trovi un altro sistema altrettanto veloce (ieri ero a pensare a leggere i link delle pagine di Musicbrainz, per esempio, che dovrebbero nomi riconducibili a una logica)

4
Programmazione / [Risolto] Il path di una immagine in webview
« il: 08 Marzo 2025, 15:35:50 »
Ho una finestra contenente un webview, da cui vorrei salvare velocemente un'immagine, in una directory scelta da me con un nome predefinito. Fino a poco tempo fa, webview permetteva, con un facile codice, di trovare il nome di una immagine in una pagina. Non sto a ricercarlo che l'ho nei backup, era qualcosa tipo
Codice: [Seleziona]
Dim v As WebHitTest = wv.HitTest(Mouse.x, Mouse.y)
E se v era una image potevi trovare il nome e tirarla giu' in automatico. Ora, WebHitTest non c'e' piu'. Avete mica letto di metodi alternativi? Mi veniva in mente di usare il javascript con webview.execjavascript, tipo per la selezione del testo
Codice: [Seleziona]
Dim sele As String = wv.execjavascript("window.getSelection().toString();")
(era cambiata anche questa), ma non trovo il sistema...


5
Programmazione / Re:Stat con directory
« il: 04 Gennaio 2025, 17:47:58 »
Scusami, non ho capito bene... aggiornando, neppure quelle funzioni esterne della libreria libc.so.6 hanno funzionato ?  ???

Quelle che mi hai suggerito tu sono ok, tranquillo :-)

6
Programmazione / Re:Stat con directory
« il: 04 Gennaio 2025, 16:44:09 »
Con l'uso esplicito di una delle due funzioni esterne hai dunque la possibilità di non usare l'istruzione Shell.

Si'. Comunque e' stato grazioso il fatto che, una volta che tutto funzionava, c'e' stato un aggiornamento dell'applicazione e ha rotto il tutto. Ora ho trovato la soluzione, pero' ufff :)

7
Programmazione / Re:Stat con directory
« il: 04 Gennaio 2025, 12:16:49 »
ma se io scrivo questo:
Codice: [Seleziona]
 Print Stat("~/work/sdb", False).Link
qui funziona e mi ritorna il link.

Ricapitolando:
directory: /home/me/tmp
linkata a: /home/me/hd1/tmp

Non mi funziona in nessun caso la risoluzione, neanche mettendo ~/tmp. Potrebbe essere il funzionamento sul mio sistema, la varieta' di questi porta a confusione. Giusto per curiosita': uso questa applicazione per leggere e scrivere dati perche' onnicomprensiva, altre molto piu' semplici non lo sono, e non vorrei usarne 2 o piu'. Pero' devo lanciare l'applicazione in un modo in cui questa usi uno script QML (passato con questa applicazione), e gia' la cosa mi piace poco. Per leggere i dati mi esporta un file csv fatto in un certo modo, e fin qui anche anche: ma definire il tipo del file con una scorciatoia mi fa paura, se lo sviluppatore cambia una virgola non torna piu' niente. Importare no. Per importarle creo un file csv in un certo formato, ma devo leggere il nome del link, se no non funziona. La procedura e' la stessa, stessi comandi, ordine etc etc, ma devo inserire il nome completo non symlinkato, per scoprirlo ho dovuto sudare :-)
Taglio qui per non farla lunga, ma come immaginerai, ogni cosa che tocco alla fine mi cambia in questo modo anche quelle precedenti molto spesso, e la cosa e' piuttosto noiosa.

8
Programmazione / Re:Stat con directory
« il: 04 Gennaio 2025, 09:14:54 »
Mi succedendo di tutto  :rolleyes:

Ma davvero: ho fatto un apt upgrade adesso, e sono cambiate cose nel programma che richiamo, per via di QT  :) :) :) Non sto a spiegare, ma e' roba che ci sto dietro da una settimana, con domande allo sviluppatore, cambi dei file di default dell'applicazione, etc etc

9
Programmazione / Re:Stat con directory
« il: 04 Gennaio 2025, 08:47:37 »
Pastrank, e se provi questo codice ?

Funziona :), e riesco a mantenere la funzione semplice e leggibile, mentre libc6 non e' una libreria esotica che magari a breve sparisce.
Codice: [Seleziona]
Public Function getSymlinkedDirectory(sl As String) As String
  Dim s As String
  Dim buf As New Byte[32]
  Dim l As Long

  l = readlink(sl, buf, buf.Count)
  s = String@(canonicalize_file_name(sl))
 
  Return IIf(s = "", sl, s) 
End
Mi succedendo di tutto  :rolleyes: questa funzione serve perche' l'applicazione che richiamo fa distinzioni tra il percorso originale e quello linkato, chissa' poi perche' (oltre a linee di comando e regole per l'importazione complicate, pero'  per le mie cose farebbe tutto e velocemente).

10
Programmazione / Re:Stat con directory
« il: 04 Gennaio 2025, 08:40:55 »
la console mi ritorna 6 che è:
Citazione
Const Link As Integer = 6
Flag used by the Stat property for a symbolic link.

La mia speranza era che fosse una cosa che funzionasse come readlink, che sulla mia Debian non fa differenza e ritorna la posizione del file o della directory reale, e Python pure mi confonde le idee :)

11
Programmazione / Stat con directory
« il: 03 Gennaio 2025, 23:01:12 »
Una cosa che non capisco: ho una directory, diciamo
/home/me/work/directory

che pero' e' un symlink alla directory
/home/me/hd1/work/directory

~/hd1 e' il punto di mount di un hard disk. Dunque, se io faccio readlink -n -f /home/me/work/directory, ottengo correttamente il nome della directory linkata. Ma non volevo shellare il processo, e volevo usare le funzioni interne. La funzione interna Stat("/home/me/work/directory").Link, pero', mi ritorna una stringa vuota, come se non fosse un symlink. Sbaglio qualcosa (ultimamente sono maestro degli sbagli)?

12
Programmazione / Re:Leggere da un array di strutture
« il: 20 Dicembre 2024, 23:25:40 »
Ammesso e non concesso che quanto allegato possa servire da base di partenza, cosa dovresti leggere?

Signori e signore, saro' breve :-)
Prima di tutto, appena posso vedo anche come applicare questa cosa anche come struttura, grazie. Vediamo quali erano le mie intenzioni: come dicevo tempo fa, sto costruendo/modificando da decenni un'applicazione per gestirmi i miei file multimediali. Delle cose si fanno meglio con Gambas direttamente, altre sarebbero piu' semplici e veloci usando librerie e programmi.
Per le tag, ad esempio, un'applicazione che legge tutti i file (inclusi .dsf e .dxd, i bluray) e' kid3 (potrei dire perche' proprio questo, ma c'entra poco con questo topic). E' interfacciabile tramite shell o tramite dbus. Non e' che la velocita' cambi poi tanto, o meglio, in entrambi i casi e' piuttosto veloce. Ammetto di aver usato anche l'esempio di vuott su taglib ora sulla Wiki, che funzionava benissimo a patto di dichiarare la libreria come "libtag_c", volendo usare pero' altri tag custom non ho trovato che pochissimi esempi. Anche su Dbus non ho trovato molto, ho provato perfino due o tre AI, che in queste cose possono agire come comici.
Comunque, kid3 a linea di comando puo' richiamare un file qml (modificabile e allegato con il programma), e ottenere un file csv con le tag, in un tempo piuttosto breve: la mia idea era di leggere comunque le tag di tutto, pero' a volte le colonne hanno titoli, presenza o meno, e ordine diversi. Provando con gli array, cosa ho fatto (semplifico):

Ho dichiarato delle costanti, con l'idea di associare poi il nome all'array
Codice: [Seleziona]
Private Const fname As Integer = 0
Private Const title As Integer = 1
Private Const track As Integer = 2
...

e poi una struttura :-), che mi servira' per salvare la posizione dei vari campi del file successivamente
Codice: [Seleziona]
Public Struct TagMap
    artist As Integer
    fname As Integer
    xinfo As Integer
   ......
End Struct

Letto il file csv, la prima riga e' quella dei nomi, e quindi la splitto (ha un comodo tab per divisore)
Codice: [Seleziona]
filetags = Split(filerows[0], "\t")

Devo quindi vedere cosa c'e': in pratica associo la posizione al campo
Codice: [Seleziona]
For i = 0 To filetags.count - 1
      Select Case LCase(filetags[i])
        Case "file path"
          MyTag[fname] = i
        Case "track number"
          MyTag[track] = i
        ........

Questo sulla prima riga del file csv: le restanti sono le righe con i tag
Codice: [Seleziona]
    For i = 1 To filerows.Count - 1
      filetags = Split(filerows[i], "\t")
        arrcount += 1
        arr.add(arrItem)     'è un array a lunghezza fissa
        arr[arrcount][fname] = filetags[MyTag[fname]]

A questo punto, ho un array a cui basta controllare se arr[fname] e' uguale al nome del file cercato, e poi prendere i valori (es arr[xinfo])


13
Programmazione / Re:Leggere da un array di strutture
« il: 17 Dicembre 2024, 22:34:18 »
Conoscere via codice i nomi identificatori di una Struttura è possibile:

Eh, i nomi li so, pero' dovrei riuscire a passarli alla funzione. Comunque provero' i suggerimenti tuoi e di Gianluigi, guardero' quale e' la soluzione piu' pratica. Che poi le prove su cose che non ho mai fatto sono le cose che mi divertono della programmazione.

14
Programmazione / Re:Leggere da un array di strutture
« il: 16 Dicembre 2024, 22:57:21 »
Poiché i membri della Struttura, suppongo, siano tutti di tipo String, perché hai preferito usare una Struttura anziché un array di tipo String?

Lo troverei di piu' facile lettura di un array multidimensionale. Vero anche che potrei impostare come costanti corrispondenti all'indice i nomi che ora assegno alla struttura, poi potrei richiamare il valore come

Codice: [Seleziona]
dati[1][nome]

15
Programmazione / Re:Leggere da un array di strutture
« il: 16 Dicembre 2024, 22:54:35 »
forse prima dovresti individuare l'indice della struttura e solo successivamente passare alla funzione che cicla solo le cose da leggere.

Questo magari no, perche' dovrei fare un sacco di funzioni separate, la base e' comune, e li' dentro pero' dovrei leggere una volta in un modo, una volta in un altro, e cosi' via

Oltre al suggerimento di vuott, considererei l'uso, visto che prendi i dati da un file CSV, anche un database semplice e leggero come SQLite

Sono nemico dei db, e comunque il formato della base non lo posso scegliere :-)

Mi è venuto in mente anche questo, scusa le ingenuità ma siamo nel 2018

Qui mi hai dato un'idea  ???

Pagine: [1] 2 3 ... 19