13.11.2014 Aufrufe

28. BWINF, Runde 1, Aufgabe 3: Wegfehler - Matthias Springer .DE

28. BWINF, Runde 1, Aufgabe 3: Wegfehler - Matthias Springer .DE

28. BWINF, Runde 1, Aufgabe 3: Wegfehler - Matthias Springer .DE

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

<strong>Aufgabe</strong> 3<br />

Stefan Hansch, Markus Wirsing, <strong>Matthias</strong> <strong>Springer</strong><br />

289 fclose(pFileMap);<br />

290 fclose(pFileLog);<br />

291<br />

292 printf("Ausgabedatei karte_out.ppm wurde erstellt. Fertig.\n");<br />

293 return 0;<br />

294 }<br />

295 else<br />

296 {<br />

297 // Eingelesene Zeile in das Array umkopieren<br />

298 // Zeile auswerten<br />

299<br />

300 int beginCurrentRecord = 0; // An welcher Stelle beginnt der<br />

aktuelle "Datensatz" in der aktuellen Zeile?<br />

301 int recordCounter = 0; // Der Index des aktuellen<br />

Datensatzes (der wieviele Datensatz in dieser Zeile?)<br />

302<br />

303 // String anpassen (Terminatoren einfuegen, um einzelne Werte<br />

auszulesen)<br />

304 currentLine[2] = 0;<br />

305 currentLine[5] = 0;<br />

306 currentLine[8] = 0;<br />

307 currentLine[18] = 0;<br />

308 currentLine[27] = 0;<br />

309<br />

310 // Drei Datensaetze einlesen<br />

311 int currentTime = atoi(currentLine) * 3600 + atoi(currentLine +<br />

3) * 60 + atoi(currentLine + 6);<br />

312 double currentLat = atof(currentLine + 9);<br />

313 double currentLong = atof(currentLine + 19);<br />

314 db_pos_y[db_count_entries] = convertCoordinateToPixelNorth(<br />

currentLat);<br />

315 db_pos_x[db_count_entries] = convertCoordinateToPixelEast(<br />

currentLong);<br />

316 db_time[db_count_entries] = currentTime;<br />

317<br />

318 printf("Datensatz eingelesen: time=%d, latitude=%f, longitude=%f<br />

.\n", currentTime, currentLat, currentLong);<br />

319 db_count_entries++;<br />

320 }<br />

321 }<br />

322 }<br />

323<br />

324 /// *************************************************<br />

325 /// * Liest die naechste Zeile ohne Kommentare ein. *<br />

326 /// *************************************************<br />

327 void readLine(FILE * file_handle)<br />

328 {<br />

329 memset(currentLine, 10000, 0);<br />

330<br />

331 if (feof(file_handle))<br />

332 {<br />

333 currentLine[0] = 0;<br />

334 return;<br />

335 }<br />

336<br />

337 // Erstes Zeichen einlesen<br />

338 fread(currentLine, 1, 1, file_handle);<br />

339<br />

340 if (feof(file_handle))<br />

341 {<br />

342 currentLine[0] = 0;<br />

343 return;<br />

344 }<br />

345<br />

346 if (strcmp(currentLine, "#") == 0)<br />

347 {<br />

348 // Bei dieser Zeile handelt es sich um einen Kommentar<br />

349 char tmp = 0;<br />

350<br />

351 while (currentLine[0] != 10)<br />

352 {<br />

353 // Zeichen fuer Zeichen bis zum Zeilensprung einlesen<br />

354 fread(currentLine, 1, 1, file_handle);<br />

355 }<br />

22

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!