Newsgroup: it.comp.lang.delphi
Titolo: Catturare dati

ciao a tutto il NG. 
In sostanza il quesito è sempre quello della memoria video... oppure
qualunque routine(sotto windows) che mi permetta di catturare dati di
archivi contenuti in altre applicazioni, archivi che sono leggibili solo
dalle applicazioni proprietarie.
Non sono idonee applicazioni create sotto M.S.D.O.S.
Non riesco proprio a venirne a capo; qualcuno ha idea di come fare?    
Ciao grazie.
GDevil.
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

In DOS...forse con applicazioni tipo Basic !?..
... devi modificare i dati in questo modo:
Esempio:
type
  chr30 = array[0..29] of char;
  chr25 = array[0..24] of char;
  R_Dati = Record
      Nome: chr30;
      Cognome: chr25;
  end;
Procedure Lettura;
Var
  F: File of  R_Dati;
  R. _Dati;
begin
  AssignFile(F,'dati.dat');
  Reset(F);
  While NOT EOF(F) do Begin
     read(F,R);
     label1.caprion:=R.Nome;
     label2.caption:=R.Cogome;
  end;
  CloseFIle(F);
 end;
solo un piccolo esempio....

 solo un piccolo esempio....
Ti ringrazio per la risposta, ma avevo specificato che una routine in
DOS non mi è utile.
grazie ancora  e ciao.
Gdevil.


 GDevil.
Sarebbe il caso che ci dessi almeno il programma o gli archivi, altrimento è
impossibile capire di che file si tratta, e come estrarli.
Saluti

Vediamo se ho capito il problema:
- hai un'applicazione con degli archivi in formato proprietario di cui non
conosci il formato e quindi non puoi accedervi direttamente da un tuo
programma;
- questa applicazione gira in DOS;
- devi migrare gli archivi dalla vecchia applicazione ad una nuova.
Se č cosě:
sicuro che la tua applicazione non abbia qualche altra forma di output oltre
il video? Prima di pensare a catturare l'output video, potresti verificare
se il programma stampa qualche tipo di report. Esistono un sacco di utility
che permettono di salvare lo spool di stampa in svariati formati.
Diversamente puoi fare tutto a mano installandoti un driver di stampante
postscript che ti genera un file .PS in formato testo, che poi puoi
analizzare come meglio credi.
Se proprio non hai altra soluzione, la lettura della memoria video č una
scelta piuttosto infelice... potresti provare con le istruzioni SEGNA/COPIA
che sono presenti nella console e provare a copiare il contenuto in notepad
o meglio excel. Ma devi fare tutto a mano o farti un programmino che tramite
DDE faccia tutto in automatico.
Ciao.
Gianluca.

> Gli Arcgivi sono parte integrante di un programma, ed in ogni caso sono molto ampi,
   (circa 10.000 righe/record) devono per forza essere "intercettati"
RunTime.
ciao.
Gdevil. 


>So che la lettura della memoria video non è proprio una soluzione ottimale, 
  ma non mi viene in mente nessuna altra soluzione praticabile, viste le
possibilità.
  Fare tutto a mano diventa impossibile(da 6.000 a 10.000 righe/record
di dati),
  inoltre è una operazione che va ripetuta nel tempo dati gli
aggiornamenti in
  formato originale.
Grazie e saluti.
Gdevil.


    di questi archivi.
Forse, in relazione a chi usa questa applicazione e ad altre implicazioni
(economiche, di licenza, ecc.), potrebbe essere utile contattare l'autore e
chiedere informazioni sulla struttura degli archivi, magari è un qualche
database di cui esistono driver ODBC/DBE. Oppure potrebbe darti direttamente
la struttura permettendoti di fare un accesso agli archivi come se si
trattasse di file binari.
Se si trattasse di una migrazione da una applicazione obsoleta ad una nuova
potrei ammettere anche procedure il cui risultato debba essere controllato
al termine dell'elaborazione, ma se questa migrazione deve essere eseguita
periodicamente conviene ridurre al  minimo le possibilità di errore.
Ciao.
Gianluca

 Gianluca
Sarebbe una soluzione se fosse praticabile... ma, dato che la azienda
che
fornisce i suddetti archivi non è la stessa che li implementa (ed in
ogni
caso sarebbe una azienda statunitense), non vi è la possibilità di
acquisire
la struttura che forse ne permetterebbe la lettura.
L'unica strada è purtroppo la possibilità di leggerli con un escamotage
informatico.
ciao Gdevil. 


informatico.
la soluzione di catturare i dati che vengono scritti su schermo e'
teoricamente possibile, tanto e' vero che alcuni prodotti software per
ipovedenti fanno proprio questo: intercettano il testo scritto su
schermo e lo inviano a un apparecchio di sintesi vocale.
Contatta la ditta Prudens (
www.spywindows.com
) e chiedi se hanno un
prodotto della serie spysuite che ti puo' aiutare. Qualcosa che
intercetti le API di Windows che scrivono su schermo.
Spiega bene quello che vuoi fare e fatti consigliare.
In bocca al lupo
Duilio

 schermo e lo inviano a un apparecchio di sintesi vocale.
Senza andare ad infognarsi in problemi complessi esiste un componente
chiamato TDosCommand con la seguente descrizione:
this component let you execute a dos program (exe, com or batch file) and
catch
the ouput in order to put it in a memo or in a listbox, ...
  you can also send inputs.
  the cool thing of this component is that you do not need to wait the end
of
the program to get back the output. it comes line by line.

 Duilio
Grazie lo farň.


 the program to get back the output. it comes line by line.
Questo Programma lavora solo con file DOS .. non è utile al mio caso.
Ciao grazie comunque.


Non so se è possibile farlo in tutti i windows, ma in quelli di classe NT la
shell CMD ha delle funzioni di SEGNA/COPIA e può essere senza troppo sforzo
pilotata tramite DDE. A questo punto mi sembra l'unica soluzione.
Ciao.
Gianluca.

 wrote in message
news:1Vzz8.34852$
8D3.1...@news1.tin.it

Hai per caso della documentazione a riguardo?
Grazie per la risposta.
Ciao.


 Hai per caso della documentazione a riguardo?
Non ho niente legato allo specifico problema.
Posso solo dirti:
- esistono dei componenti di Delphi TDDEClientConv e TDDEClientItem (nella
palette System) che fanno al caso tuo per attivare una conversazione DDE;
- le funzioni di SEGNA/COPIA sono presenti nel menu di sistema della console
CMD.EXE di winNT;
- la gestione della clipboard è ampiamente documentata nell'help di Delphi;
- con WinSight32 (ed il CMD.EXE attivo) dovresti riuscire a catturare la
finestra per attivare la conversazione DDE.
Dal punto di vista "codice" non ho niente al riguardo, anche se mi sembra
tra gli example di Delphi ci sia qualcosa.
Ciao.
Buon Lavoro.
Gianluca.

 Gianluca.
Ok ci provo, per ora ti ringrazio.


 In sostanza il quesito č sempre quello della memoria video... oppure


 In sostanza il quesito č sempre quello della memoria video... oppure
