Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

17.01.2012, 16:30

Java Endverarbeitung

Hallo zusammen

Leider bin ich ziemlich unerfahren was die Programmierung angeht, obwohl ich mich wirklich für die Programmierung interessiere mache ich zur Zeit kaum Fortschritte :/

Nun ist bei uns in der Firma ein Worstcase Szenario eingetroffen, welche beide Programmierer für unbestimmte Zeit ausser Gefecht setzt :(

Dadurch ist mir eine ziemlich dringende Arbeit zugewiesen worden, dabei geht es darum ein bisschen Javacode anzupassen, leider bleibe ich aber immer an der selben Stelle hängen.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
for (String date : dateList) { 

String[] batchList = anyUtil.getDirs(appDir + "\\" + date); 
System.out.println(batchList.length); 
for (String batch : batchList) { 
String[] tifList = anyUtil.getTifs(appDir + "\\" + date + "\\" + batch); 
String csvFile = anyUtil.getCSV(appDir + "\\" + date + "\\" + batch); 
//process csv + images 
anyProcess(appDir, date, batch, csvFile, tifList); 

} 
if (!new File(appDir + "\\" + date).delete()) { 
log("***** Warnung: Datums Ordner konnte nicht gelöscht werden: " + appDir + "\\" + date); 
} else { 
log("Datumsordner gelöscht: " + appDir + "\\" + date); 
} 
}

Der oben gepostete Code ist dafür zuständig, dass Datumsordner durchsucht werden, in diesen Datumsordner befinden sich weitere Ordner(wir nennen diese bei uns in der Datenerfassung Batch-Ordner).
Die Änderung welche ich nun vollziehen soll bezieht sich darauf, dass ich nicht die ganze batchList sondern nur 10 Batch-Ordner pro Programmaufruf abarbeite und falls es keine 10 Ordner mehr hat, dann soll es nur noch den rest verarbeiten.

Ich hoffe ich konnte mein Problem gut genug schildern, kann mir hier bitte jemand ein paar Tipps geben, oder sogar die Änderung posten(da es ein ziemlich dringender Fall ist) ansonsten müssen wir immer manuell 10 Batch-Ordner von Hand verschieben und abarbeiten?



Danke sehr für eure Unterstützung.



Gruss

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

2

17.01.2012, 16:57

du musst entweder die äußere For-Each Schleife in eine For-Schleife umbauen und die automatische Zuweisung selbst ausführen oder in dieser Schleife wie sie jetzt ist die Anzahl der Schleifendurchläufe mitzuzählen und ggf. abzubrechen
falls das nicht verständlich genug ist, kannst du nochmal nachfragen
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

drakon

Supermoderator

Beiträge: 6 513

Wohnort: Schweiz

Beruf: Entrepreneur

  • Private Nachricht senden

3

17.01.2012, 18:10

Nun ist bei uns in der Firma ein Worstcase Szenario eingetroffen, welche beide Programmierer für unbestimmte Zeit ausser Gefecht setzt

Dadurch ist mir eine ziemlich dringende Arbeit zugewiesen worden, dabei geht es darum ein bisschen Javacode anzupassen[...]

Na, dann viel Glück.
Ziemlich unfair von deinem Arbeitgeber. Nichts gegen dich, aber da würde er besser einen Freelancer anheuern. Kommt auf die Dauer wahrscheinlich auch billiger, als mit 1 unerfahrenen Programmierer 2 ersetzen zu wollen. Das kann ja nicht gut kommen..

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

4

17.01.2012, 18:30

Nun ist bei uns in der Firma ein Worstcase Szenario eingetroffen, welche beide Programmierer für unbestimmte Zeit ausser Gefecht setzt

Dadurch ist mir eine ziemlich dringende Arbeit zugewiesen worden, dabei geht es darum ein bisschen Javacode anzupassen[...]

Na, dann viel Glück.
Ziemlich unfair von deinem Arbeitgeber. Nichts gegen dich, aber da würde er besser einen Freelancer anheuern. Kommt auf die Dauer wahrscheinlich auch billiger, als mit 1 unerfahrenen Programmierer 2 ersetzen zu wollen. Das kann ja nicht gut kommen..

das ist noch keine sonderlich große Programmieraufgabe, allerdings kann es durchaus sein, dass schon die nächste Aufgabe zu schwer ist (ich will dich damit nicht beleidigen - wenn du noch ein wenig Erfahrung sammelst, dann dürfte eine solche Situation nicht zu schlimm sein, auch wenn du auch dann keine/niemand 2 anderen Programmierer ersetzen können wirst)
Freelancer ist ein gutes Stichwort
auch bei uns in der IT arbeiten einige Externe, die nicht bei uns angestellt sind - und das nicht, weil gerade mal ein paar Programmierer krank sind, das wäre kein größeres Problem ;)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

5

17.01.2012, 19:18

Danke für eure Antworten.

Keine Angst ich nehme es nicht übel, es entspricht ja der Wahrheit. Ich weiss das dies anzupassen nicht allzu schwer sein sollte. Also werde ich mich nun doch noch vor die Bücher setzen. Irgendwann schnall ich es dann bestimmt xD. Ich habe es mit einem Counter versucht, jedoch verarbeitet er munter weiter, ich habe ihn wohl falsch positioniert. Wie baue ich denn eine For Each-Schleife um? und meinst du diese for (String date : dateList) Schleife? Ich habe bei mir mal die batchList ausgegeben, wieviele das drin sind, und hier werden ja alle zusammen gezählt, egal unter welchem Datum sie eingetragen sind. Muss ich nicht da etwas ändern?


Merci

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

6

17.01.2012, 21:27

Genau das meinte er mit foreach-Schleife. Mach daraus einfach eine normale for-Schleife. Wie diese aussieht solltest du fix bei Google finde. Wenn du ein Java-Buch hast, dann guck da einfach fix rein. Ist alles wirklich kein Voodoo. Wenn ich das mit dem Counter bei dir richtig verstehe, dann regelt das die Schleife auch schon für dich. Was du mit zusammen Zählen meinst weiß ich auch nicht;)
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

7

18.01.2012, 05:16

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Integer counter = 0;
for (String date : dateList) { 
    String[] batchList = anyUtil.getDirs(appDir + "\\" + date); 
    System.out.println(batchList.length); 
    for (String batch : batchList) { 
        String[] tifList = anyUtil.getTifs(appDir + "\\" + date + "\\" + batch); 
        String csvFile = anyUtil.getCSV(appDir + "\\" + date + "\\" + batch); 
        //process csv + images 
        anyProcess(appDir, date, batch, csvFile, tifList); 
    } 
    if (!new File(appDir + "\\" + date).delete()) { 
        log("***** Warnung: Datums Ordner konnte nicht gelöscht werden: " + appDir + "\\" + date); 
    } else { 
        log("Datumsordner gelöscht: " + appDir + "\\" + date); 
    }
    if(++counter>=10) break;
} 


Eigentlich bin ich auf dem Weg nach München, aber ich helfe dir mal kurz.
So sollte es klappen. Ich weiß nur nicht mehr wie man einen integer definiert in Java und habe keine Zeit zu suchen.

Grüße,
Môr

8

18.01.2012, 08:29

Danke danke danke! :)

Hallo zusammen



Ich habe heute morgen den Code von Môr übernommen und angepasst.

Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int counter = 0;
        for (String date : dateList) {
            String[] batchList = anyUtil.getDirs(appDir + "\\" + date);
            for (String batch : batchList) {
                String[] tifList = anyUtil.getTifs(appDir + "\\" + date + "\\" + batch);
                String csvFile = anyUtil.getCSV(appDir + "\\" + date + "\\" + batch);
                //process csv + images
                anyProcess(appDir, date, batch, csvFile, tifList);
                if (++counter >= 9) {
                    break;
                }
                System.out.println("Counter*********** " + counter);
            }
            if (!new File(appDir + "\\" + date).delete()) {
                log("***** Warnung: Datums Ordner konnte nicht gelöscht werden: " + appDir + "\\" + date);
            } else {
                log("Datumsordner gelöscht: " + appDir + "\\" + date);
            }
        }


Ich habe die If-Bedingung unter die For Each Schleife von der batchList (sagt man das so?) gepackt und nun funktioniert alles wunderbar.

Ich habe das Gefühl das ich gestern etwas ähnliches geschrieben und getestet habe, jedoch ohne Erfolg! Kann dies sein, weil ich ohne break gearbeitet habe?



Jedenfalls wollte ich mich bei euch bedanken, zum einen bei Môr für die super Antwort und zum anderen an alle anderen für die Unterstützung :) Ihr habt in mir das interesse für Java geweckt.



Gruss

9

18.01.2012, 08:42

Vielleicht ist das hier ja was für dich. Weiterhin viel Erfolg :)

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

10

18.01.2012, 09:14

Hymza: schau lieber nochmal nach, ob das Programm tatsächlich das macht, was es machen soll

@Môr:
int für den primitiven Datentypen, Integer für die Klasse (und auf wundersame Weise funktioniert auch Integer zahl = 2; - ich arbeite nicht mit der Klasse Integer, weshalb ich das erst probieren mususte...)
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige