Newsgroup: it.comp.java
Titolo: Bamboccioni 2...la vendetta

In Delphi(drasticamente "segato" da Microsoft e IBM)
quante righe chi sono in un file di testo ?
fileData := TStringList.Create;
fileData.LoadFromFile('Test.txt');
ShowMessage(Inttostr(fileData.Count));
pattern, wrapper, parser, garbageCollection...cazzo sembra na roba 
difficile....
In compenso nessuno vi ha mai insegnato a trattare "il dato"...questo 
sconosciuto...e scrivi... e scrivi... e scrivi....
Ma che state a scrï¿œve...dovete trattare il datooooooo...un 
programmatore deve trattare il dato....
Bamboccioni belli del nonno...ma quando imparerete....

 In Delphi(drasticamente "segato" da Microsoft e IBM)
Delhi ancora esiste (non so per quanto visto l'andazzo). Compresa
versione per Net.
Poi ci sono Freepascal e Lazarus, cloni opensource.
Non fatevi traviare da Java, o giovini informatici.... :-))

 quante righe _chi_ sono in un file di testo ?
In 1 riga, e pure ottimizzato:
http://www.google.co.uk/search?q=how+many+lines+in+a+text+fast+count
--
ale
http://ale.riolo.co.uk

 difficile....
Scusa ma nell'esempio in java si toglievano le righe dei commenti... qui 
come tratti queste righe ?

FP ha spiegato il 02/12/2009 :

loop su filedata e un banale contatore.
...aaabamboccione....non ti ostianre a voler difendere 
l'indifendibile...

 ShowMessage(Inttostr(fileData.Count));
Scusa, forse non ho capito il senso profondo dei tuoi ultimi post, ma in 
PHP, per esempio, diventa
print(count(file('Test.txt')));
Bye.

Alessandro Pellizzari ha spiegato il 02/12/2009 :

infatti ... il senso dei miei post e' proprio quello che ti fai 
notare... e ti rinado al terzo 3d che ho teste' postato.
Ciao.

 
Poi dicono che i programmatori non sono capaci :)
  oDialogs := TOpenTextFileDialog.create(self);
  fileData := TStringList.Create;
  if oDialogs.Execute then
  try
    fileData.LoadFromFile(oDialogs.Filename);
    ShowMessage(Inttostr(fileData.Count));
  finally
   fileData.Free;
   oDialogs.Free;
  end;
^_Goblin_^
NB: :)
-- 
Ibis et redibis non morieris in bello
http://goblinland.myminicity.com/

 Giusto, non sia mai che per sbaglio giri anche su una piattaforma diversa.
lazarus e' multipiattaforma, basta ricompilare.

 lazarus e' multipiattaforma, basta ricompilare.
Con java non devi nemmeno ricompilare..

amlo ha scritto:

bash:
wc -l nomefile.ext
e fai anche prima.

 lazarus e' multipiattaforma, basta ricompilare.
Anche il C e il Fortran sono multipiattaforma in questo senso...
Ciao Jack

Jack ha scritto:

oltretutto lazarus � un ide e un class library, il linguaggio � il
freepascal.
e non che lo dico io ci mancherebbe..
lo dicono loro sul sito del progetto:
. The class libraries and development environment for Free Pascal that
emulate Delphi.
Senza contare che:
la versione linux usa ancora gtk 1.2 che non si pu� vedere nel 2009; per
compilarlo col supporto gtk2 o qt ci devi ammattire tre giorni e tre
notti; su osx lasciamo perdere...
Niente di personale contro delphi resta ad oggigiorno il miglior modo
per avere binari compilati con distribuzione facilitata (non mega di
runtime come java/.net e altro) le performance sono ottime, la class
library stupenda, la gestione dei db fantastica; ma come
multipiattaforma � 'nu cesso proprio.

il 02.12.2009 13.54, Scrive amlo 43514776:

e tutti gli altri file nelle directory e sottodirectory? nell'esempio 
java erano inclusi.

il 02.12.2009 12.39, Scrive amlo 43514776:

Beh se ti stai concentrando su quanto possa essere coinciso un 
linguaggio, e vuoi semplicemente contare le righe in un file di testo, 
allora in java puoi scrivere semplicemente:
System.out.println(new TextLineReader("Test.txt").getLineCount());

Sembra che Dr.Ugo Gagliardelli abbia detto :

bhe! ma tu ....sei un bamboccione ?
:')

 linguaggio, e vuoi semplicemente contare le righe in un file di test
Per non dire di quello che può fare con le RegExp, se non ha
particolari problemi di prestazioni.
--
ale
http://ale.riolo.co.uk

 Giusto, non sia mai che per sbaglio giri anche su una piattaforma diversa.
Delphi aveva anche una versione per Linux, Kylix. Venne segata,
evidentemente nessuno la voleva.
Freepascal e Lazarus girano su molte piattaforme. Quindi.... :-)
A parte questo, più che criticare Java, si tratta di dire che Delphi è
un ottimo prodotto.

 System.out.println(new TextLineReader("Test.txt").getLineCount());
...
non mi pare una classe standard del jdk, che package ï¿œ?
come dire...
resto di stucco ï¿œ un barbatrucco!


Infatti. Per essere sicuro, ed essendo di coccio, ricompila
automaticamente ad ogni esecuzione, non sia mai... :-))

 
Sebbene non si sia ancora capito cosa tu voglia indicare con la 
categoria "bamboccione", se fosse pero' sufficiente a differenziarmi da 
quelli come te, allora si': sono un "bamboccione".
Quindi?

 multipiattaforma è 'nu cesso proprio.
Eh bè, tutto ha un prezzo.
Java ha dietro fior di nomi commerciali. Se fosse solo una pura
iniziativa volontaria avrebbe la stessa qualità e facilità d'uso?
Forse no.

 resto di stucco ï¿œ un barbatrucco!
LoL! :-D

il 02.12.2009 17.06, Scrive michelangelo giacomelli 43514776:

Certo che e' un barbatrucco!
:-)
public class TextLineReader extends LineNumberReader {
   public TextLineReader(String fileName) {
     super(new InputStreamReader(new FileInputStream(fileName)));
   }
   public int getLineCount() {
      try {while(readLine() != null)} catch (Exception e){}
      return getLineNumber();
   }
}
E' il bello dell'ereditarieta': se non c'e' con poco si fa'!

 
sicuramente no.
E c'� da dire di pi� se borland avesse avuto migliori politiche forse
oggi il mondo degli strumenti di sviluppo sarebbe diverso.

 
Vero ma era un periodo in cui i prodotti commerciali su linux proprio
non andavano, inoltre la versione personale aveva una grossa limitazione
a parte dover rilasciare il codice sotto gpl, cosa sacrosanta e
legittima, appariva un alert box di diversi secondi, inoltre la gui non
era ne gtk ne qt e stonava un p�

Dr.Ugo Gagliardelli ha scritto:

:)


 lazarus alzati e camminaaaaaaaaaa

ispas ha scritto:

effettivamente mi sono sempre chiesto come mai non si facesse una cache
su disco della classi post jit, probabilmente per avere una certa
uniformit� e semplicit� tra le varie edizioni.. magari su una java
stanard edition su desktop avere una directory sotto tmp o di sistema
che tiene il bytecode post-jit � semplice su un cellulare magari no
(magari anche per policy di sicurezza del device) l'enterprice edition
ha risolto invece il problema con application server che tengono le
classi in memoria, con pool, etc...
certo un jit-cache per desktop edition non costerebbe nulla, e magari
ridurrebbe pure i tempi di lancio.

 
#!/usr/bin/ruby
puts IO.readlines("file.java").size()-1;


puts IO.readlines("file.java").size;

 ridurrebbe pure i tempi di lancio.
Sulla mancanza di una cache ti posso dare ragione, può sempre fare
molto comodo. Poi dipende anche come viene utilizzata.

 E' il bello dell'ereditarieta': se non c'e' con poco si fa'!
Un ottimo esempio di "fragile base class" :)

 ridurrebbe pure i tempi di lancio.
In realtà, per quel che so, cerca di ottimizzare ricompilando solo le
parti necessarie.
Resta il fatto che se tu rilanci 10 volte lo stesso programma con
medesimo input si ricompila 10 volte le stesse classi.
Passi per quelle specifiche dlel'applicazione, ma quelle del
runtime...... no!
Una cosa del genere su programmi batch di una certa entità è assurda.
Poi chiaramente ci si mette una pezza comprando hardware con 4-5 volte
la potenza che servirebbe usando linguaggi più tradizionali.

 credi che il processore possa immaginarsi cosa vuoi fare a priori?
No, è vera ricompilazione, o peggio interpretazione, perchè il
processore ovviamente non capisce un tubo dello pseudocodice Java.

 era ne gtk ne qt e stonava un p�.
L'ho provato per un po' ai tempi ma all'atto pratico funzionava bene 
solo su certe combinazioni di kernel, X etc, difficile pensarci
di fare qualcosa di proponibile 'esternamente'...

 ShowMessage(Inttostr(fileData.Count));
main() { system("wc Test.txt"); }




 programma su Linux non ce lo porti neanche con le bombe.
Ahhhhh, invece se in Java chiami nativamente qualche Dll di Windows
magicamente funziona anche su Linux... :-)))
Mi dirai che in programmi Java sta' cosa si usa estremamente meno che
in Delphi, questo sì.

 
no, vedi come funziona jni e decidi di lasciare perdere e non usi
chiamate native.

 l'hai. 
non ce l'hai quasi mai...
ora in java 6 hai il supporto alla trayicon qualche annetto fa (mio dio
ne sono passati già 7) dovemmo realizzare una cosa analoga e fu un vero
patimento...
ma è anche vero che in ambiente desktop java non ha mai avuto tutto
questo mercato..

  
dai era un esempio limite... era per dire che la mole di librerie a
corredo del jdk oggi copre molte esigenze tra cui ad esempio quella rara
di avere una classe per la trayicon.

 era ne gtk ne qt e stonava un pò.
Se non ricordo male, Kylix usava le Qt2 (o le 3)
Enrico