Asp.net strana

Molio bih pomoc oko asp.net

Posto sam s javine strane sve napravio cak i sinkronizaciju , trebao bih sad iz asp-a ocitat datoteku koju sam napravio u javi, ali ne znam kako to a da ne zeznem sinkronizaciju,moze li molim vas neko rijesit ili objasnit postupak.Evo koda iz jave, pa mozda pomogne i shvatite princip zadaatka :

import java.lang.;
import java.io.
;

public class ispit
{
private static String poruka = “Unesi ime, preizme, broj indeksa i ispit odvojeno zarezom:”;
private BufferedReader br;
private BufferedWriter bw;
private FileOutputStream fop;
private String [] polje;
File lockf = new File(“c:/neki_direktorij/ispit.lock”);
boolean lock;
File f;
boolean mode;

// citaj ulaz
private String ulaz()
{
String i = null;

try
{
i = br.readLine();
}
catch (IOException ioe)
{
System.out.println(“Greska pri unosu”);
System.exit(1);
}

return i;
}

// ispisi poruku i dohvati s ulaza
private String dohvati()
{
System.out.println(poruka);
return ulaz();
}

// Parsiranje ulaza
private String[] parser(String str)
{
// Podjeli na polje stringova
// Delimiter je znak ,
String [] podaci = str.split(",");

// provjera ima li tocno polja
if(podaci.length != 4)
{
return null;
}

// Ima li praznih polja?
for(int i = 0;i<podaci.length; i++)
if(podaci[i].trim().equals(""))
return null;

^\d{6}$ regularan izraz (regular expression)
koji definira iskljucivo 6-znamenkaste brojeve

if(!podaci[2].trim().matches("^\d{6}$"))
return null;

// provjeri da li je ispit iz jave ili asp.net
if(!podaci[3].trim().equals(“java”) && !podaci[3].trim().equals(“ASP.net”))
return null;

return podaci;
}

// upisi podatke u datoteku
private boolean upisi(String file, String [] podaci)
{
boolean ret = false;
boolean mode = true;

String tmp;

try
{
// Sinkronizacija pomocu lock datoteke izmedju jave i asp

while(lock == false && lockf.exists())
{
// Cekaj 1 sekundu pa ponovo provjeri lock
Thread.currentThread().sleep(1000);
}

// Ako ne postoji lock datoteka znaci mozemo pisati
// Stvori lock datoteku
lockf.createNewFile();
lock = true;
lockf.deleteOnExit();

// Ako datoteka s podacima vec postoji tekst se dodaje na kraj
// Ako ne postoji, mora se stvoriti
if(f.exists())
mode = true;
else
mode = false;

// Otvori datoteku u koju cemo upisivati podatke
fop = new FileOutputStream(f, mode);

  • je operator spajanja stringova (concatenation)
    tmp = “Ime:” + podaci[0].trim() + “\n”;
    tmp += “Prezime:”+podaci[1].trim()+"\n";
    tmp += “Mbrs:”+podaci[2].trim()+"\n";
    tmp += “Ispit:”+podaci[3].trim()+"\n";

// upisi podatke o korisniku/ispitu u buffer
fop.write(tmp.getBytes());

// forsiraj da se podaci prebace iz buffera u datoteku
fop.flush();

// zatvori datoteku
fop.close();

// Pisanje je gotovo, mozemo maknuti lock
lockf.delete();
lock = false;

System.out.println(“Podaci uspjesno upisani”);
ret = true;
}
catch (IOException ex)
{
ex.printStackTrace();
}
catch(Exception e)
{
System.out.println(“lock exception”);
}

return ret;
}

// Konstruktor
public ispit (String file)
{
f = new File(file);

// Provjera postoji li datoteka
if(f.exists())
{
// Ako postoji moze li se citati/pisati?
if(f.canRead() && f.canWrite())
System.out.println(“Datoteci se moze pristupiti”);
}
// Ako ne postoji, moze li se stvoriti?
else
{
try
{
// Moze li se stvoriti?
f.createNewFile();
}
catch (IOException ex)
{
System.out.println(“Ne mogu stvoriti datoteku”);
System.exit(1);
}
catch (SecurityException ex)
{
System.out.println(“Ne mogu stvoriti datoteku”);
System.exit(1);
}
}

// Citaj ulaz s tipkovnice
br = new BufferedReader(new InputStreamReader(System.in));

// Beskonacna petlja koja stalo ucitava linije s tipkovnice
// Izlaz iz programa -> CTRL-C
while(true)
{
try
{
// Ako lock datoteka postoji, a java ju ne drzi,
// znaci da asp radi nesto s njome
while(lockf.exists() && lock == false)
{
// 1 sekunda
Thread.currentThread().sleep(1000);
}
}
catch(Exception e)
{
System.out.println(“lock exception”);
}

String podaci = dohvati();
polje = parser(podaci);

if(polje != null)
{
if(!upisi(file, polje))
System.out.println(“problemi kod upisa u datoteku”);
}
else
System.out.println(“problemi kod parsiranja”);
}
}

// Pocetna metoda
// Prije pokretanja je potrebno pretvoriti u bytecode:
// # javac ispit.java
// Pokretanje u komandnoj liniji:
// # java ispit datoteka
public static void main (String[] args)
{
// Program prihvaca jedan argument -> putanja do datoteke u koju ce se upisivati
if(args.length == 1)
new ispit(args[0]);
}
}

ne kuzim, trebas napraviti citanje datoteke?

Da, iz datoteke koju napravim u javi.Samo problem je da dok iz asp citam iz te datoteke on mi upise samo zadnju liniju, ne kuzim.Ovo su moji pokusaji u ASP za citanje iz datoteke

    	StreamReader sr = new StreamReader("D:/izlaz.txt");

		string linija = null;
        while ((linija = sr.ReadLine()) != null)
        {
            string[] podaci = linija.Split(';');
            lblIme.Text = linija;

lbl ime mi je labela u kojoj se mora pojavit ime iz te datoteke
Sad ne znam kako povuc prezime, jmbg,ispit i broj polaganjja ispita u druge labele zasebno

Da, iz datoteke koju napravim u javi.Samo problem je da dok u asp.net citam iz te datoteke on mi upise samo zadnju liniju u labelu, ne kuzim zasto ?.Ovo su moji pokusaji u ASP.netu za citanje iz datoteke

    	StreamReader sr = new StreamReader("fileName.txt");

string line;
while((line= sr.ReadLine()) != null) {
lblIme.Text=line;
//ne znam kako sada napravit da u lblPrezime cita drugu linija iz datoteke. jer
ako kazem ovo : lblPrezime.Text=line ispisat ce mi istu vrijednost koja je i u prvoj labeli, a to je obicno zadnja linija u datoteci.
}

finally
{
if (sr != null)
sr.Close();
}

Dakle lbIme mi je labela u kojoj se mora pojavit ime iz te datoteke
Sad ne znam kako povuc prezime, jmbg,ispit i broj polaganjja ispita u druge labele zasebno

Nisam pisao i citao obicne datoteke vec stotinama godina:)

Zato imam drugu ideju:
kreiraj ovakav zapis:
ime|prezime|broj|nesto
i onda samo procitas liniju, i splitaj ju sa
var araj=linija.Split(’|’)
i dobijes array djelova, po kojem mozes ici sa indexom:
lblIme.Text = araj[0]; lblPrezime.Text= araj[1] ,…

A u ovom tvom slucaju, ako zelis procitati prezime, samo ispod lblIme.Text=line; dodaj lblPrezime.Text = sr.ReadLine(). To je onako napamet, moze lako puknut ako je slucajno dosao do kraja fajla i ta linija ne postoji.


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja