parsen von ASCII Dateien

Schnelle objektorientierte, kompilierende Programmiersprache.
canlot
Beiträge: 393
Registriert: Di Mär 08, 2011 11:01 pm
Wohnort: NRW

Re: parsen von ASCII Dateien

Beitrag von canlot » Fr Jul 15, 2011 8:21 am

Bruno hat geschrieben:Naja, 12 jahre Fortran gegen 6 Wochen C... ist klar, wer da verliert :-)))
Fortran ?!! :D
Unwissenheit ist ein Segen

Benutzeravatar
fat-lobyte
Beiträge: 1398
Registriert: Sa Jul 05, 2008 12:23 pm
Wohnort: ::1
Kontaktdaten:

Re: parsen von ASCII Dateien

Beitrag von fat-lobyte » Fr Jul 15, 2011 9:09 am

Bruno hat geschrieben:Naja, 12 jahre Fortran gegen 6 Wochen C... ist klar, wer da verliert :-)))
Fortran verliert immer ;-)
Haters gonna hate, potatoes gonna potate.

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: parsen von ASCII Dateien

Beitrag von Xin » Fr Jul 15, 2011 10:07 am

Bruno hat geschrieben:Danke fürs auführliche Posting!
Mann ist das kompliziert...
Nein, der Witz ist, das ist nicht kompliziert, das ist genau das, was die Maschine wirklich macht.

Darum bringe ich Einsteigern C als erste Sprache bei, weil sich so gar keine falschen Vorstellungen von den Fähigkeiten von Computern entwickeln können.
Im C Tutorial reite ich daher auch derart auf den Begriffen "Wert" und "Datentyp" herum, weil diese extrem scharfe Trennung lernen selbst Informatiker nicht explizit, vermutlich weil sie so offensichtlich ist, dass man sie dann doch schludert.
Bruno hat geschrieben:Ich denke immer noch in Fortran, da sind Strings ein eigener Datentyp und der Umgang damit ist recht simpel

Code: Alles auswählen

program bsp
  implicit none
 
  character(len=4) :: a
  character(len=10) :: b
        
  a = 'How '
  b = 'do you do.'
      
  write(*,*) a // b
  ! Ausgabe: How do you do.
end program bsp
Sowas? Ich sehe hier auch nur String-Arrays. :-)
Komfortabler scheint mir hier nur die Zuweisung zu sein. Hierfür vielleicht gleich der Tip zu strcpy. Eine Falle, auf die jeder C-Anfänger reinfällt, löst Du mit strcmp. ;-)
Die (wenigen) Befehle, die jede C-Implementation mitbringt findest Du hier auf Deutsch dokumentiert, soweit wir bisher gekommen sind. Die interessanten Funktionen, zum Beispiel String-Funktionen sind soweit aber abgedeckt.
In Englisch z.B. hier.

In der Firma, in der ich arbeite, programmieren wir auch Fortran. Wir haben auch jemanden, der Fortran in seiner Ausbildung ausführlich gelernt hat und dieser weigert sich Fortran zu programmieren. Er programmiert mit mir C++ und in dem Bereich, indem ich arbeite ist C++ halt gefragt und so wurde ich bisher verschont :-D

Womit wir dann bei meiner nächsten Anreiz wären: Wenn Du 12 Jahre Fortran programmiert hast und jetzt C lernst - offenbar direkt in den produktiven Einsatz hinein - NASTRAN scheint mir nicht so das Wunschobjekt für Einsteiger zu sein - dann rate ich Dir Dich schnellstmöglich zu C++ weiterzuentwickeln. C++ ist nicht zwangsläufig langsamer als C, grundsätzlich kann es sogar schneller sein. In jedem Fall reicht es dem Entwickler Möglichkeiten an die Hand sicheren und wartbareren Quelltext zu schreiben.

Rechne ich 12 Jahre zurück landen wir bei bei etwa Fortran 95, da gibt es meines Wissens schon Strukturen und damit auch objektorientierte Programmierung? Sofern ihr die benutzt habt, solltet ihr erst recht nicht bei C aufhören.

In C++ findest Du auch komfortable(re) String-Klassen, bzw. ich habe mir inzwischen selbst eine entwickelt, die genauso so ist, wie ich mir das vorstelle.
Bruno hat geschrieben:Naja, 12 jahre Fortran gegen 6 Wochen C... ist klar, wer da verliert :-)))
Fortran ist auch nur C mit anderen Mitteln.

Dranbleiben und wenn's hakt, kannst Du hier ja Fragen stellen - dafür ist proggen.org ja da.

Am Rande: Wenn Du 12 Jahre Kompetenz für eine kommende Generation zur Verfügung stellen magst, das hier ist eine Mitmach-Seite und ein Fortran-Tutorial könnte ich sogar persönlich für meinen Beruf gebrauchen. Auch heute werden Dir vermutlich reichlich Studenten dankbar sein.

Es ist aber auch eine Seite, die von Freiwilligen erstellt wird. Es besteht also auch kein Zwang. Wir haben auch Familie, Beruf und gelegentlich den Wunsch keinen Computer zu sehen.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Bruno
Beiträge: 41
Registriert: Do Jul 14, 2011 7:04 am

Re: parsen von ASCII Dateien

Beitrag von Bruno » Mo Jul 18, 2011 11:42 am

Hallo!
Xin hat geschrieben: In der Firma, in der ich arbeite, programmieren wir auch Fortran. Wir haben auch jemanden, der Fortran in seiner Ausbildung ausführlich gelernt hat und dieser weigert sich Fortran zu programmieren. Er programmiert mit mir C++ und in dem Bereich, indem ich arbeite ist C++ halt gefragt und so wurde ich bisher verschont :-D
Ich programmiere hier (leider) nicht vorrangig, sondern helfe im Sinne der Prozeßunterstützung mit ein paar kleinen Tools, mehr nicht.
Xin hat geschrieben: Am Rande: Wenn Du 12 Jahre Kompetenz für eine kommende Generation zur Verfügung stellen magst, das hier ist eine Mitmach-Seite und ein Fortran-Tutorial könnte ich sogar persönlich für meinen Beruf gebrauchen. Auch heute werden Dir vermutlich reichlich Studenten dankbar sein.

Es ist aber auch eine Seite, die von Freiwilligen erstellt wird. Es besteht also auch kein Zwang. Wir haben auch Familie, Beruf und gelegentlich den Wunsch keinen Computer zu sehen.
Hmja... bin schon eeetwas älter als es sich evt. anhört. :-)
Ich habe F77 gelernt und bin im Grunde für die paar kleinen Tools hier damit glücklich...

Ich weiß nicht, ob DAS Wissen noch gefragt ist...

C muß ich jetzt machen (C++ geht wohl nicht), weil ich jetzt doch mehr in Richtung GUI unterwegs bin und die Herstellerfirma C-Bibliotheken für Ihre Software bereitstellt, die ich nutzen will.
Evt. kann man das auch in C++ einbinden, aber ich bin erstmal froh in 6 Wochen überhaupt mal was produktives außerhalb von Fortran hinbekommen zu haben... :D

Was NASTRAN angeht: das ist ein (mittlerweile 50 Jahre altes) Finite Elemente Programm und DAS sieht man! (wers genauer wissen will kann ja mal googlen oder ins Wiki gucken).
Da bin ich nicht gerade ein Anfänger, daher weiß wie gefährlich es ist sich auf bestimmte Konventionen zu verlassen und daher kommt z.B. strtok nicht in Frage!
Hier muß ich echt "back to the roots" den NASTRAN Input parsen, sonst zerlegts mich, weil irgendeiner mal was von Hand reingepuzzelt hat.

Ciao

Jürgen
"21" ist nur die halbe Wahrheit...

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3125
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: parsen von ASCII Dateien

Beitrag von cloidnerux » Mo Jul 18, 2011 11:59 am

Da bin ich nicht gerade ein Anfänger, daher weiß wie gefährlich es ist sich auf bestimmte Konventionen zu verlassen und daher kommt z.B. strtok nicht in Frage!
Dann programmiere dir was eigenes?
C-Strings und string-Parsen ist "einfach". Nicht so einfach das es jeder sofort könnte, aber nicht so schwer als das man dafür Jahre lang C-gelernt haben müsste.
Zudem soll ein 50 Jahre altes Programm die Dateien auch lesen können, wie schwer kann es also für dich sein?

Das kann dir dabei Helfen:
http://www.proggen.org/doku.php?id=c:tutorial:cstrings
Hier muß ich echt "back to the roots" den NASTRAN Input parsen, sonst zerlegts mich, weil irgendeiner mal was von Hand reingepuzzelt hat.
Ich bezweifle das du mit Assembler arbeiten willst^^
Es ist nicht "back to the roots", wenn es keine geeignete Funktion dafür gibt und du sie dir selber Implementieren musst. Es ist nur umständlich.

ich will jetzt nicht anmaßend klingen, aber dein Problem hört sich jetzt für mich nicht so schwer an, wie du selber es anscheinend ansiehst. Daher würde ich dir den Rat geben, dir einfach etwas eigenes zu Implementieren, was dein Problem löst.

MfG cloidnerux.
Redundanz macht wiederholen unnötig.
quod erat expectandum

Benutzeravatar
Xin
nur zu Besuch hier
Beiträge: 8862
Registriert: Fr Jul 04, 2008 11:10 pm
Wohnort: /home/xin
Kontaktdaten:

Re: parsen von ASCII Dateien

Beitrag von Xin » Mo Jul 18, 2011 1:12 pm

Bruno hat geschrieben:
Xin hat geschrieben: Am Rande: Wenn Du 12 Jahre Kompetenz für eine kommende Generation zur Verfügung stellen magst, das hier ist eine Mitmach-Seite und ein Fortran-Tutorial könnte ich sogar persönlich für meinen Beruf gebrauchen. Auch heute werden Dir vermutlich reichlich Studenten dankbar sein.

Es ist aber auch eine Seite, die von Freiwilligen erstellt wird. Es besteht also auch kein Zwang. Wir haben auch Familie, Beruf und gelegentlich den Wunsch keinen Computer zu sehen.
Hmja... bin schon eeetwas älter als es sich evt. anhört. :-)
Ich war gerade mit einem Kollegen essen, der jetzt 60 wird. Er ist nicht der älteste Entwickler in der Firma. Der älteste Entwickler bei proggen.org ist - soweit ich das in Erinnerung habe und überhaupt davon weiß - 68 Jahre. Weil die "Jungspunte" hier am meisten schreiben, heißt das nicht, dass man zum alten Eisen gehört, weil man eeetwas älter ist, als es sich evtl. anhört.
Bruno hat geschrieben:Ich habe F77 gelernt und bin im Grunde für die paar kleinen Tools hier damit glücklich...

Ich weiß nicht, ob DAS Wissen noch gefragt ist...
Ich habe Dich und Dein Wissen gefragt. Die Entscheidung liegt bei Dir, es gibt keinen Zwang. Wenn Du Zeit und Lust hast, würde es mich freuen, wenn nicht ist das okay.

Wir machen hier Tutorials zum Thema Programmierung. Fortran ist eine Programmiersprache und es ist eine wichtige Programmiersprache gewesen. Es gibt weiterhin Unmengen Code in Fortran und damit gibt es immernoch Gründe, Fortran zu lernen. Jeder hier kann jederzeit mit Fortran-Quellen in Berührung kommen.
Ich würde niemandem anraten, Fortran als erste Programmiersprache zu nehmen, aber das Wissen um Fortran ist alles andere als wertlos - selbst wenn es "nur" F77 ist.
An meinem Arbeitsplatz haben wir sehr viel Fortran77, es wird aktiv daran entwickelt und ich bin nicht sicher, dass ich hundertprozentig verstanden habe, was ein "Common Block" genau ist, wenn hier davon gesprochen wird.

Ein Fortran-Tutorial wäre vermutlich nicht gut besucht, weil sich eben nicht jeder dafür interessiert. Niemand schreibt die "coolen" Ego-Shooter damit. Aber ich bin überzeugt, dass ein Fortran-Tutorial ein sehr ausgewähltes und durchaus interessiertes Publikum hätte. Die Kiddies, die mal eben Programmieren lernen wollen, werden sich das nicht antun. Aber die, die Programmieren können und jetzt mit Fortran in Kontakt kommen werden das zu schätzen wissen. Ich zumindest fand die Auswahl an interessanten Fortran-Informationen im Internet eher überschaubar.
Bruno hat geschrieben:C muß ich jetzt machen (C++ geht wohl nicht), weil ich jetzt doch mehr in Richtung GUI unterwegs bin und die Herstellerfirma C-Bibliotheken für Ihre Software bereitstellt, die ich nutzen will.
Du kannst mit C++ C-Bibliotheken ansprechen und auch Bibliotheken erstellen, die von C aus ansprechbar sind.
Bruno hat geschrieben:Evt. kann man das auch in C++ einbinden, aber ich bin erstmal froh in 6 Wochen überhaupt mal was produktives außerhalb von Fortran hinbekommen zu haben... :D
Ich halte es auch für richtig, Dich erstmal in C halbwegs sicher bewegen zu können. Fortran77 und C sind sich in den Konzepten ähnlich. Ich gehe aber davon aus, dass Du in Fortran bereits mit dynamischen Datenstrukturen und Rekursion gearbeitet hast.

Wenn Du Dich halbwegs sicher fühlst und das würde ich nach 6 Wochen definitiv noch nicht erwarten, dann solltest Du Dich auf jeden Fall in C++ und objektorientierte Programmierung einlesen. C++ hält im Vergleich zu F77 ein ganzes Universum neuer Denk-Möglichkeiten bereit.
Bruno hat geschrieben:Was NASTRAN angeht: das ist ein (mittlerweile 50 Jahre altes) Finite Elemente Programm und DAS sieht man! (wers genauer wissen will kann ja mal googlen oder ins Wiki gucken).
Da bin ich nicht gerade ein Anfänger, daher weiß wie gefährlich es ist sich auf bestimmte Konventionen zu verlassen und daher kommt z.B. strtok nicht in Frage!
Hier muß ich echt "back to the roots" den NASTRAN Input parsen, sonst zerlegts mich, weil irgendeiner mal was von Hand reingepuzzelt hat.
Dann mach das.
Es bringt gerade als Einsteiger nichts, wenn man sich ewig mit den Standard-Funktionen beschäftigt, um gut zu Programmieren, sollte man sie auch selbst schreiben können. Die Standard-Funktionen kann man als guter Programmierer dann nutzen, um sie nicht immer wieder selbst zu schreiben.

Ich habe schon einigen Leuten C beigebracht und das Parsen von C-Strings ist eine der besten Übungen, um mit C vertraut zu werden. Strings sind menschenlesbar und maschinenlesbar, man kann sich wunderbar anzeigen lassen, was man gerade tut und ob das, was das Programm tut, das ist, was man sich selbst vorgestellt hat.
Merke: Wer Ordnung hellt ist nicht zwangsläufig eine Leuchte.

Ich beantworte keine generellen Programmierfragen per PN oder Mail. Dafür ist das Forum da.

Antworten