Pessoal eu n entende nada de java, mas to precisando muito fazer um programa que abra o arquivo que está em txt que será colocado numa pasta dentro do jar só que eu n sei nem por onde começar.
Eu lí umas dúvidas aqui no forum, mas n consegui nada…
Bem eu gostaria que o meu aplicativo jar fizesse isto:
Ele apenas leia o arquivo de texto, que por sinal é muito grande, mas n passa de 1mb
E que antes dele ler tenha uma página que tenha tipo um sistema de busca, onde vai ter digite o número do artigo:
Ai vamos supor que a pessoa coloca 1 ai ele vai para o texto e acha onde está o artigo 1. ( o texto é único, não está em vários arquivos n, apenas em um txt.
Exemplo:
Artigo 1- os princípios para uma boa alimentação são:
Lah na primeira página se a pessoa coloca o número 1 ele vai para o artigo 1, se colocar 2 vai pro 2 e assim sucessivamente…
Agora se não entende nada de java, ai fudeu, e se não entende nada de OO ai tá perdido mesmo.
Isso se você não tiver tempo, mas se tiver ai ta sussa, nada que uma boa estudada não resolva.
Agora: Se tiver duvidas em alguma coisa pode procurar agente.
Abraços
Ricoldi
Cara, obrigado pela ajuda, na verdade eu não sou tão analfabeto assim em criar aplicativos j2me, já criei uma vez um que envolvia texto também só que eu utilizava a ferramenta que tem no netbeans…
Continuo usando o netbeans só que agora não posso usar mais a ferramenta visto que o texto que quero abrir pelo j2me é um texto muito grande e os textos que eu utilizava antes não passavam de 30kb ou 2 páginas no word…
A única coisa que quero saber a princípio é como posso abrir/ler um arquivo que está no formato .txt pelo java de um celular…
Eu conheço um programa chamado Hinário Adventista Mobile que utiliza esse sistema, é bem parecido com o que estou querendo…
Alguém poderia da uma olhada e me ajudar a fazer???
A única diferença desse para o meu é que nele vc coloca o número do hino e ele abre o arquivo txt que vc chamou pelo número colocado, no meu o texto é único, contínuo em um só arquivo…
E ao invés de ao colocar o número para abrir o arquivo que tem o número correspondente eu queria que ao colocar o número o aplicativo localizasse no meu texto onde está aquele número entendeu??
Como assim “onde coloca esse código?” isso ai não é plug de computador, que cada um tem seu lugar especifico. isso é código, você tem que entender o que esta escrito, nem sabe o que esta acontecendo ali.
Acho que tudo que precisa esta no outro post, basta “perder” um tempo lendo e entendendo, garanto que se fizer isso vai entender.
Quem dá luz é mulher gravida e o povo da CPFL, Se tiver duvidas pergunte…
Abraços, Ricoldi.
velho, mesmo sendo código cada código tem um lugar certo de colocar…
Imagine se eu fizesse um .php começando de baixo pra cima?
Não ia funcionar, principalmente se fosse acesso a uma db…
Não sei se vc reparou o que eu escrevi acima, mas utilizo o Netbeans para desenvolver o aplicativo, e nele tem uma função que é Midlet Visual onde eu faço eu desenvolvo como se estivesse utilizando o dreamweaver para criar site… Por isso perguntei onde colocar o código…
public class constituicao extends MIDlet implements CommandListener{
private Display display;
private Form form;
private Command read, exit;
private Alert alert;
ImageItem imagem;
public constituicao(){
display = Display.getDisplay(this);
read = new Command("Iniciar", Command.SCREEN, 1);
exit = new Command("Sair", Command.EXIT, 1);
form = new Form("Bem Vindo...");
form.addCommand(exit);
form.addCommand(read);
form.setCommandListener(this);
}
public void startApp(){
display.setCurrent(form);
}
public void pauseApp(){}
public void destroyApp(boolean unconditional){
notifyDestroyed();
}
public void commandAction(Command c, Displayable s){
String label = c.getLabel();
if (label.equals("Iniciar")){
String string = file();
if (string != null){
alert = new Alert("Constituição Mobile", string, null, null);
alert.setTimeout(Alert.FOREVER);
display.setCurrent(alert, form);
}
} else if (label.equals("Sair")){
destroyApp(false);
}
}
private String file(){
InputStream is = getClass().getResourceAsStream("constituicao/constituicao.txt");
StringBuffer sb = new StringBuffer();
try{
int chars, i = 0;
while ((chars = is.read()) != -1){
sb.append((char) chars);
}
return sb.toString();
}catch (Exception e){}
return null;
}
}[/code]
Só estou com uma dúvida agora, como faço para inserir uma figura nesse código, quero que a figura apareça na tela, a figura é logo.png mas n estou conseguindo colocar nenhum código…
[quote=decco]vutilizo o Netbeans para desenvolver o aplicativo, e nele tem uma função que é Midlet Visual onde eu faço eu desenvolvo como se estivesse utilizando o dreamweaver para criar site… Por isso perguntei onde colocar o código…
[/quote]
Deixa eu dar minha cacetada do dia… :lol:
Pare de usar a parte visual pois se realmente quer fazer algo decente, quer aprender, o correto é fazer o código do zero, no braço.
Quem opta em usar o Visual vai ficar com estas dúvidas mesmo e agora nós entendemos sua dúvida de "onde colocar o código"
Faça o que o ricoldi disse, estude mais, pois você está “patinando” no básico e desse jeito não vai sair do lugar.
eu ocnsegui colocar o código para não da erro, mas ele n está visualizando o arquivo txt alguém pode me ajudar?
ai o código que coloquei para essa form
[code]public Form getConstituição() {
if (constituição == null) {
// write pre-init user code here
constituição = new Form(“Constitui\u00E7\u00E3o Mobile”, new Item[] { });
constituição.getClass().getResourceAsStream(“constituicao/constituicao.txt”);
InputStream is = getClass().getResourceAsStream(“constituicao/constituicao.txt”);
StringBuffer sb = new StringBuffer();
try{
int chars, i = 0;
while ((chars = is.read()) != -1){
sb.append((char) chars);
}
[quote=decco]eu ocnsegui colocar o código para não da erro, mas ele n está visualizando o arquivo txt alguém pode me ajudar?
ai o código que coloquei para essa form
[code]public Form getConstituição() {
if (constituição == null) {
// write pre-init user code here
constituição = new Form(“Constitui\u00E7\u00E3o Mobile”, new Item[] { });
constituição.getClass().getResourceAsStream(“constituicao/constituicao.txt”);
InputStream is = getClass().getResourceAsStream(“constituicao/constituicao.txt”);
StringBuffer sb = new StringBuffer();
try{
int chars, i = 0;
while ((chars = is.read()) != -1){
sb.append((char) chars);
}
Estamos aqui para ajudar, mas é normal que qualquer pessoa que não seja um professor e que pior, não ganha para isso, deixar de ficar nervoso com certas pessoas as vezes nem é seu caso, mas aqui vem gente que na verdade não quer nem saber ou aprender só quer fazer o trabalho da facul, ou o extra, ou o trampo chato que o chefe mandou, e por isso não temos como saber quem esta realmente con dificuldade e quem quer só uma mamata.
Sobre seu problema era exatamente disso que eu estava falando:
Nào sei o quanto sabe de programação mas creio que esse problema é obvio para qualquer programador em qualquer linguagem. O que esta acontecendo, não tem ideia do que o código faz, mas ele pelo visto esta populando o seu StringBuffer e como o boone disse não esta fazendo nada com ele. Para exibir o conteudo é só dar um sb.toString(). porem onde vai jogar isso eu não sei, para testar pode usar:
cara eu consegui colocando ao invés de uma textField uma stringItem, mas quando abre parece ue o arquivo tah em branco, pq ele n aparece nada do texto! Ajuda ai por favor;;;
[code]//
/**
* Returns an initiliazed instance of stringItem component.
* @return the initialized component instance
*/
public StringItem getStringItem() {
if (stringItem == null) {
// write pre-init user code here
stringItem = new StringItem("", null, Item.PLAIN);
stringItem.getClass().getResourceAsStream(“constituicao/constituicao.txt”);
InputStream is = getClass().getResourceAsStream(“constituicao/constituicao.txt”);
StringBuffer sb = new StringBuffer();
try{
int chars, i = 0;
while ((chars = is.read()) != -1){
sb.append((char) chars);
System.out.println(“Constituição Mobile” + sb.toString());
}
Sei que pra algumas pessoas é dificil aprender a pescar, se você não entender isso aqui se mata…
import java.io.DataInputStream;
import java.io.IOException;
import java.io.InputStream;
import javax.microedition.midlet.*;
/**
* @author ricoldi
*/
public class Main extends MIDlet {
public void startApp() {
try {
InputStream canal = getClass().getResourceAsStream("teste.txt"); //Abro o canal com o arquivo dentro do jar (getResourceAsStream)
String conteudo = lerArquivo(canal); //Chamo o metodo que lê o conteudo e retorna a string
System.out.println("Conteudo [" + conteudo + "]"); //Exibo o conteudo da string no console do emulador
} catch (Exception e) {
e.printStackTrace();
}
}
private String lerArquivo(InputStream canal) throws IOException {
if (canal == null) { //Verifico se o canal não é nulo por questões de segurança
return new String();
}
canal = new DataInputStream(canal); //Jogo o canal em um DataInput porque segundo a documentação do java a classe Input pode nem sempre retornar a quantidade de bytes corretamente
byte[] dados = new byte[canal.available()]; //Crio um byte[] do tamanho do bytes dentro do canal (Tamanho do arquivo)
canal.read(dados); //Mando o canal popular o byte[] (Por ser do tamanho do arquivo ele vai ler todo o conteudo de uma vez e jogar na memoria e depois na string). Neste ponto é interessante dependendo do tamanho do arquivo lêr em buffers ao invéz de tudo de uma vez, mas fica no gosto do desenvolvedor
return new String(dados); //Crio uma string com base do bytes lidos do canal e retorno
}
public void pauseApp() {
}
public void destroyApp(boolean unconditional) {
}
}
cara a questão não é saber pescar ou não vei, a questão é onde colocar esse código para funcionar, se eu te passar o meu código inteiro você adapta ele no meu ??
cara, só estou com um problema agora, e sei que se resolver isso vai funcionar tudo…
repare essa parte do código
public Form getConstituição() {
if (constituição == null) {
// write pre-init user code here
constituição = new Form("Constitui\u00E7\u00E3o Mobile", new Item[] { getStringItem() });
constituição.addCommand(getBackCommand());
constituição.setCommandListener(this);
// write post-init user code here
}
return constituição;
}
Me diz ai ali onde tem getStringItem}); me ajude a no lugar dele puxar uma StringItem puxar apenas uma String e tudo ficará certo e eu paro de enher vcs;