<td width=40%><h2>SAS Base Code Analyse</h2></td>
<td width=30%><img src="../images/cth_logo.png" align="right" height="75px"></td></tr>
</table></div>
<br /><br /><br /><br />
<p align=center><b><span style="font-size:11pt; font-weight:bold;">Wählen Sie eine Datei mit Programmen aus</span></b><br></p>
<FORM ENCTYPE="multipart/form-data" ACTION="Programmehinzufuegen.jsp"
METHOD=POST>
<table border="0" align="center" rules="groups" cellspacing="11">
<tbody>
<tr>
<td align="right">Source-Datei: </td>
<td align="left"><INPUT NAME="file" TYPE="file" class="file"></td>
</tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr>
<td align="right">Projekt ID: </td>
<td align="left"><select name="SelectDropDown" size=1 class="standard">
<option value=''></option>
<%
String[][] Projekte2 = AuswahlAusMYSQL.ErmittlungDerProjekte();
String[] Projekt_IDs = new String[Projekte2.length];
for (int i = 0; i < Projekte2.length;) {
++i;
out.print("<option value=\"" + i + "\">" + Projekte2[i - 1][1] + " " + Projekte2[i - 1][0]
+ "</option>");
Projekt_IDs[i - 1] = Projekte2[i - 1][1];
}
%>
</select></td>
</tr>
<tr><td></td></tr>
<tr><td></td></tr>
<tr>
<td></td>
<td align="left"><b><INPUT TYPE="submit" VALUE="hinzufügen"></b></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td align="right"><a href="Projektorganisation.jsp"><b><input type="button" name="zurueck" value="Zurück"></input></b></a>
<td></td>
</tbody>
</table>
</FORM>
<div class="footer"></div>
<%
String contentType = request.getContentType();
if ((contentType != null)
&& (contentType.indexOf("multipart/form-data") >= 0)) {
DataInputStream in = new DataInputStream(
request.getInputStream());
int formDataLength = request.getContentLength();
byte dataBytes[] = new byte[formDataLength];
int byteRead = 0;
int totalBytesRead = 0;
while (totalBytesRead < formDataLength) {
byteRead = in.read(dataBytes, totalBytesRead,
formDataLength);
totalBytesRead += byteRead;
}
String Projekt_ID = null;
String file = new String(dataBytes);
int projekt_id_int = 0;
int programm_id_int = 0;
String ProgrammBeschreibung = "";
String ProjektBeschreibung = "";
String textfile = "";
//System.out.println("file.indexOf(\"name=\"SelectDropDown\") = "
// + file.indexOf("name=\"SelectDropDown\""));
if (file.indexOf("name=\"SelectDropDown\"") != -1) {
String Ausgewaehlt = file.substring(
file.indexOf("name=\"SelectDropDown\"") + 22,
file.indexOf("name=\"SelectDropDown\"") + 26);
/*System.out.println("Projekt Ausgewaehlt = |" + Ausgewaehlt
+ "|");*/
Projekt_ID = Projekte2[Integer.parseInt(Ausgewaehlt.trim()) - 1][1];
ProjektBeschreibung = Projekte2[Integer.parseInt(Ausgewaehlt.trim()) - 1][0];
projekt_id_int = Integer.parseInt(Projekt_ID.trim());
/* */
int PROGname = file.indexOf("name=\"file\"");
String progName=file.substring(PROGname+23,file.indexOf("\"",PROGname+23));
System.out.println(progName);
String FlagImProgramm="ADD ";
String Datei="";
String FileName="";
int flagCounter=0;
try {
String data =new String (dataBytes) ;
System.out.println("Halo "+data.length());
for(int b=0;b<=(data.length()-4);b++){
String tempFlag=data.substring(b,b+4); // Zusammengefügtes String zum Vergleich
if(tempFlag.equals(FlagImProgramm)){
flagCounter++;
String tempData=data.substring(0,b); //Zwwieschenspeichern eines Programmabschnittes
data=data.substring(b, data.length());//Ausschneiden gefundene Programme aus Datei
try {
if (tempData.startsWith(FlagImProgramm)) {
FileName=tempData.substring(11,19)+".txt";
ProgrammBeschreibung=tempData.substring(11,19);
File fileT=new File(FileName);
FileWriter fw=new FileWriter(fileT);
fw.write(tempData);
fw.close();
String sDbDrv = MYSQLparameter.getDriver();
String sDbUrl = MYSQLparameter.getURL();
String sUsr = MYSQLparameter.getUser();
String sPwd = MYSQLparameter.getPassword();
Connection myConnection = null;
PreparedStatement myStatement = null;
String sSql = "SELECT max(programm_id) + 1 FROM sasco.programm";
Connection cn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName(sDbDrv);
cn = DriverManager.getConnection(sDbUrl, sUsr, sPwd);
st = cn.createStatement();
rs = st.executeQuery(sSql);
programm_id_int = 1;
while (rs.next()) {
programm_id_int = Integer.parseInt(rs.getString(1).trim());
}cn.close();myConnection.close();
} catch (Exception ex) {/* ok */}
}
String Datenbank = "sasco";
if (projekt_id_int != 0 && programm_id_int != 0 ) {
//System.out.println("========== Analyse der Text-Datei (SAS Source Code) =========");
boolean GesamtErgebniss = true;
boolean Ergebniss = false;
Ergebniss = SpeicherungInMYSQL.SpeicherungDesProgramms(Datenbank,
projekt_id_int, programm_id_int, ProgrammBeschreibung);
if (Ergebniss == false){
out.println("ACHTUNG: Fehler beim Speichern des Programms: "+ ProgrammBeschreibung);
GesamtErgebniss = false;
}
String[][] Werte = Analyse.ZeilenBestimmen(tempData);
String OHNEKom1 = Analyse.EntferneKommentarTyp1(tempData);
Ergebniss=SpeicherungInMYSQL.SpeicherungDerZeilen(Datenbank,
projekt_id_int, programm_id_int, Werte);
if (Ergebniss == false){
out.println("ACHTUNG: Fehler beim Speichern der Zeilen: " + ProgrammBeschreibung);
GesamtErgebniss = false;
}
else {
String[][] OHNEKom2 = Analyse
.EntfernungVonKommentarVomTyp2(OHNEKom1, Werte);
int AnzahlDerStatements = Werte.length;
Ergebniss=SpeicherungInMYSQL.SpeicherungVonStatements(Datenbank,
projekt_id_int, programm_id_int, OHNEKom2);
if (Ergebniss == false){
out.println("ACHTUNG: Fehler beim Speichern der Statements: "+ProgrammBeschreibung );
GesamtErgebniss = false;
}
else {
String[][] KommentarVonTyp1 = Analyse.EntferneCodeUndTyp2(
tempData, Werte);
Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp1(Datenbank,
projekt_id_int, programm_id_int, KommentarVonTyp1);
if (Ergebniss == false){
out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 1: "+ProgrammBeschreibung );
GesamtErgebniss = false;
}
String[][] KommentarVonTyp2 = Analyse
.ErmittlungderKommentareVomTyp2(OHNEKom1, Werte);
Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp2(Datenbank,
projekt_id_int, programm_id_int, KommentarVonTyp2);
if (Ergebniss == false){
out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 2: " +ProgrammBeschreibung);
GesamtErgebniss = false;
}
/*************************************************************************************************************/
try{
String[][] tokenstabelle = Analyse.BildungderTokens(
OHNEKom1, Werte);
Ergebniss=SpeicherungInMYSQL.SpeicherungDerTokens(Datenbank,
projekt_id_int, programm_id_int, tokenstabelle);
}catch(ArrayIndexOutOfBoundsException e){e.getLocalizedMessage();}
if (Ergebniss == false){
out.println("ACHTUNG: Fehler beim Speichern der Token: " +ProgrammBeschreibung);
GesamtErgebniss = false;
}
else {
Ergebniss=SpeicherungInMYSQL.AufrufenderProzeduren(Datenbank,
projekt_id_int, programm_id_int);
if (Ergebniss == false){
out.println("ACHTUNG: Fehler beim Ausführen der Prozeduren:" +ProgrammBeschreibung);
GesamtErgebniss = false;
}
}
}
}
/*if (GesamtErgebniss == true){
out.println("Das Programm '" + ProgrammBeschreibung
+ "' wurde dem Projekt '" + ProjektBeschreibung + "' hinzugefügt" );
}*/
System.out.println("Erstellt-----"+FileName);
b=0;
tempData="";
}
} catch(StringIndexOutOfBoundsException e){System.out.println("Datei zu klein: "+ProgrammBeschreibung);}
}
}
// Zum Schlüss gebliebene Inhalte Speichern
FileName=data.substring(11, 19)+".txt";
ProgrammBeschreibung=data.substring(11,19);
File lastFile=new File(FileName);
FileWriter fw=new FileWriter(lastFile);
fw.write(data);
fw.close();
String sDbDrv = MYSQLparameter.getDriver();
String sDbUrl = MYSQLparameter.getURL();
String sUsr = MYSQLparameter.getUser();
String sPwd = MYSQLparameter.getPassword();
Connection myConnection = null;
PreparedStatement myStatement = null;
String sSql = "SELECT max(programm_id) + 1 FROM sasco.programm";
Connection cn = null;
Statement st = null;
ResultSet rs = null;
try {
Class.forName(sDbDrv);
cn = DriverManager.getConnection(sDbUrl, sUsr, sPwd);
st = cn.createStatement();
rs = st.executeQuery(sSql);
programm_id_int = 1;
while (rs.next()) {
programm_id_int = Integer.parseInt(rs.getString(1).trim());
}myConnection.close();
cn.close();
} catch (Exception ex) {/* ok */}
/*System.out.println("ProgrammID = |"
+ programm_id_int + "|");*/
String Datenbank = "sasco";
if (projekt_id_int != 0 && programm_id_int != 0 ) {
//System.out.println("========== Analyse der Text-Datei (SAS Source Code) =========");
boolean GesamtErgebniss = true;
boolean Ergebniss = false;
Ergebniss = SpeicherungInMYSQL.SpeicherungDesProgramms(Datenbank,
projekt_id_int, programm_id_int, ProgrammBeschreibung);
if (Ergebniss == false){
System.out.println("ACHTUNG: Fehler beim Speichern des Programms: " +ProgrammBeschreibung);
GesamtErgebniss = false;
}
String[][] Werte = Analyse.ZeilenBestimmen(data);
String OHNEKom1 = Analyse.EntferneKommentarTyp1(data);
Ergebniss=SpeicherungInMYSQL.SpeicherungDerZeilen(Datenbank,
projekt_id_int, programm_id_int, Werte);
if (Ergebniss == false){
System.out.println("ACHTUNG: Fehler beim Speichern der Zeilen: " +ProgrammBeschreibung);
GesamtErgebniss = false;
}
else {
String[][] OHNEKom2 = Analyse
.EntfernungVonKommentarVomTyp2(OHNEKom1, Werte);
int AnzahlDerStatements = Werte.length;
Ergebniss=SpeicherungInMYSQL.SpeicherungVonStatements(Datenbank,
projekt_id_int, programm_id_int, OHNEKom2);
if (Ergebniss == false){
System.out.println("ACHTUNG: Fehler beim Speichern der Statements: "+ProgrammBeschreibung );
GesamtErgebniss = false;
}
else {
String[][] KommentarVonTyp1 = Analyse.EntferneCodeUndTyp2(
data, Werte);
Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp1(Datenbank,
projekt_id_int, programm_id_int, KommentarVonTyp1);
if (Ergebniss == false){
System.out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 1: "+ProgrammBeschreibung );
GesamtErgebniss = false;
}
String[][] KommentarVonTyp2 = Analyse
.ErmittlungderKommentareVomTyp2(OHNEKom1, Werte);
Ergebniss=SpeicherungInMYSQL.SpeicherungKommentarVonTyp2(Datenbank,
projekt_id_int, programm_id_int, KommentarVonTyp2);
if (Ergebniss == false){
System.out.println("ACHTUNG: Fehler beim Speichern der Kommentare vom Typ 2: "+ProgrammBeschreibung );
GesamtErgebniss = false;
}
String[][] tokenstabelle = Analyse.BildungderTokens(
OHNEKom1, Werte);
Ergebniss=SpeicherungInMYSQL.SpeicherungDerTokens(Datenbank,
projekt_id_int, programm_id_int, tokenstabelle);
if (Ergebniss == false){
System.out.println("ACHTUNG: Fehler beim Speichern der Token: "+ProgrammBeschreibung );
GesamtErgebniss = false;
}
else {
Ergebniss=SpeicherungInMYSQL.AufrufenderProzeduren(Datenbank,
projekt_id_int, programm_id_int);
if (Ergebniss == false){
System.out.println("ACHTUNG: Fehler beim Ausführen der Prozeduren: " +ProgrammBeschreibung);
GesamtErgebniss = false;
}
}
}
}
/*if (GesamtErgebniss == true){
out.println("Das Programm '" + ProgrammBeschreibung
+ "' wurde dem Projekt '" + ProjektBeschreibung + "' hinzugefügt" );
}*/System.out.println("Erstellt-letztes----"+FileName);data="";
}
}catch(IOException e) {System.out.println(e.getMessage());}
}
}
//}
%>
</body>
</html>