PDA

View Full Version : editor java che inserisce numeri linea


hello
24-06-2007, 22:10
sapete consigliarmi qualche editor per programmi java che consente di stampare/copiare il listato inserendo i numeri vicino a ogni linea di codice, tipo:

1: ...
2: ...
3: ...

dovrei copiare il codice in word, inoltre sapete anche se c'è qualche editor che nel copiare il codice riporti anche i colori (esempio il verde per i commenti) in modo che in word non risulta scritto tutto in nero!!!

:help:

andbin
25-06-2007, 09:06
sapete consigliarmi qualche editor per programmi java che consente di stampare/copiare il listato inserendo i numeri vicino a ogni linea di codicePer quanto riguarda la stampa, sia l'editor ConTEXT che l'IDE JCreator (sono i due tools che uso normalmente) possono stampare i numeri di linea e possono pure stampare a colori in base alla sintassi.

dovrei copiare il codice in word, inoltre sapete anche se c'è qualche editor che nel copiare il codice riporti anche i colori (esempio il verde per i commenti) in modo che in word non risulta scritto tutto in nero!!!I due tools che ho appena menzionato non lo fanno (almeno per quello che mi risulta). Copiano solo il testo senza alcuna formattazione e basta. Qui ci vorrebbero dei tools appositi (e probabilmente esistono già ...).

AngeL)
25-06-2007, 09:37
sapete consigliarmi qualche editor per programmi java che consente di stampare/copiare il listato inserendo i numeri vicino a ogni linea di codice, tipo:

1: ...
2: ...
3: ...

dovrei copiare il codice in word, inoltre sapete anche se c'è qualche editor che nel copiare il codice riporti anche i colori (esempio il verde per i commenti) in modo che in word non risulta scritto tutto in nero!!!

:help:


import java.io.*;
import java.awt.*;
import java.awt.datatransfer.*;

class CopyFile {
public static void main(String[] args) {
String finalString = "";
int lineNum = 1;
if(args.length == 1) {

try {
FileInputStream fStream = new FileInputStream(args[0]);
DataInputStream dStream = new DataInputStream(fStream);

while(dStream.available()!=0) {
if(lineNum != 1) {
finalString += "\n";
}

finalString += itoa(lineNum++) + " " + dStream.readLine();
}
dStream.close();
} catch (Exception e) {
System.out.println("Input Error!");
}

Clipboard clipBoard = Toolkit.getDefaultToolkit ().getSystemClipboard (); // Preso dal sito
clipBoard.setContents (new StringSelection (finalString), null); // di andbin :)

} else {
System.out.println("Errore. Il parametro deve essere uno");
}
}

public static String itoa(int num) {
int[] cifre = new int[100];
int next = 0;
int currNumVal = 0;
String ret = "";
while(num != 0) {
currNumVal = 0;
while(num%10 > 0) {
num--;
currNumVal++;
}
if(num != 0) num /= 10;
cifre[next] = currNumVal + 48;
next++;
}
for(int i = 0; i < next; i++) {
ret = (char)cifre[i] + ret;
}
return ret;
}
}

java CopyFile filedacopiare.java ;)

p.s. le due righe per copiare il testo nella clipboard le ho prese dal sito di andbin :)

p.p.s. il risultato leggendo se stesso:
1 import java.io.*;
2 import java.awt.*;
3 import java.awt.datatransfer.*;
4
5 class CopyFile {
6 public static void main(String[] args) {
7 String finalString = "";
8 int lineNum = 1;
9 if(args.length == 1) {
10
11 try {
12 FileInputStream fStream = new FileInputStream(args[0]);
13 DataInputStream dStream = new DataInputStream(fStream);
14
15 while(dStream.available()!=0) {
16 if(lineNum != 1) {
17 finalString += "\n";
18 }
19
20 finalString += itoa(lineNum) + " " + dStream.readLine();
21 lineNum++;
22 }
23 dStream.close();
24 } catch (Exception e) {
25 System.out.println("Input Error!");
26 }
27
28 Clipboard clipBoard = Toolkit.getDefaultToolkit ().getSystemClipboard (); // Preso dal sito
29 clipBoard.setContents (new StringSelection (finalString), null); // di andbin :)
30
31 } else {
32 System.out.println("Errore. Il parametro deve essere uno");
33 }
34 }
35
36 public static String itoa(int num) {
37 int[] cifre = new int[100];
38 int next = 0;
39 int currNumVal = 0;
40 String ret = "";
41 while(num != 0) {
42 currNumVal = 0;
43 while(num%10 > 0) {
44 num--;
45 currNumVal++;
46 }
47 if(num != 0) num /= 10;
48 cifre[next] = currNumVal + 48;
49 next++;
50 }
51 for(int i = 0; i < next; i++) {
52 ret = (char)cifre[i] + ret;
53 }
54 return ret;
55 }
56 }

^TiGeRShArK^
25-06-2007, 09:46
Eclipse mantiene correttamente formattazione e colorazione quando viene copiato in word.

hello
25-06-2007, 23:37
Eclipse mantiene correttamente formattazione e colorazione quando viene copiato in word.

è possibile inserire anche i numeri di linea?

grazie!!!

PGI-Bis
26-06-2007, 15:25
itoa

Istituto Tecnico Oreste Arnaboldi?

Il Creativo
26-06-2007, 15:35
Un editor che ti dà i numeri di linea e mi pare dia anche l'opportunità di copiare testo è Scite(Scintilla text editor), ma è un editor più adatto per chi sta iniziando a muovere i primi passi con Java, se vuoi qualcosa di più serio a mio avviso il migliore è Eclipse, distribuito direttamente dalla Sun, troverai alcuni bugs inizialmente un pò fastidiosi ma dopo che ti ci sarai abituato ti troverai molto bene(almeno IMHO) ;) . Se puoi spendere anche qualche soldino puoi acquistare JBuilder, dicono sia tra i migliori(personalmente non l'ho mai provato).

PGI-Bis
26-06-2007, 15:41
Eclipse, distribuito direttamente dalla Sun

:eekk: Infedele! :eekk:

:D

AngeL)
26-06-2007, 18:20
Istituto Tecnico Oreste Arnaboldi?

non ho capito come si usa toString :p















:asd:

andbin
26-06-2007, 20:24
Mi ci metto anch'io, ecco il mio sorgente (Java 5+):
import java.awt.*;
import java.awt.datatransfer.*;
import java.io.*;

public class LineNumberTool
{
public static void main (String[] args)
{
if (args.length == 1 || args.length == 2)
{
InputStream is = null;
InputStreamReader isr = null;
BufferedReader br = null;

try
{
is = new FileInputStream (args[0]);
isr = new InputStreamReader (is, args.length == 2 ? args[1] : "ISO-8859-1");
br = new BufferedReader (isr);

StringBuilder sb = new StringBuilder ();
String s;
int l = 1;

while ((s = br.readLine ()) != null)
sb.append (String.format ("%-5d %s%n", l++, s));

Clipboard clipBoard = Toolkit.getDefaultToolkit ().getSystemClipboard ();
clipBoard.setContents (new StringSelection (sb.toString ()), null);
}
catch (Exception e)
{
System.err.println (e);
}
finally
{
try {
if (br != null)
br.close ();
else if (isr != null)
isr.close ();
else if (is != null)
is.close ();
}
catch (Exception e) { }
}
}
else
{
System.out.println ("Usage: java LineNumberTool <filename> [<charset>]");
}
}
}

Il Creativo
26-06-2007, 21:56
:eekk: Infedele! :eekk:

:D

Hai ragione...:D Non so per quale strano motivo ricordavo una cosa del genere... comunque resta un ottimo tool!!! :read: