Zum Inhalt springen

TDM

Mitglieder
  • Gesamte Inhalte

    1804
  • Benutzer seit

  • Letzter Besuch

Alle Inhalte von TDM

  1. Zumal getch eine ungepufferte Eingabe ist... D.h. wenn du nach der Aufforderung z.B. 123 eingibst, wird mittels getch zu erst der Dezimalwert von 1 (=49) gespeichert und danach die scanf-Funktion mit 23 aufgerufen...
  2. 1. mach ein Define in die Header, damit die nicht mehrmals eingebunden wird. 2. keine .c-Dateien includen. 3. was ist p? eine Funktion die int zurückgibt?! Nein, also mach ein struct draus. Auf Parameter wird nicht mit $ Zugegriffen, dafür gibts im Funktionskopf (z.B. vom Konstruktor) die Parameterliste.
  3. Das trivialste wäre, bei einer Übersicht einfach eine propertyVariable zu setzen und dann zur nächsten Zeile zuspringen. Beim schreiben in die Datei überprüfst du dann diese variable mittels select-case und schreibst die werte so rein, wie sie drin stehen sollen.
  4. Es ist allgemein Quatsch dreimal das gleiche zu schreiben (sicher copy&paste?!). Lieber dann so: if(strcmp("text1", line) == 0) continue; else if(strcmp("text2", line) == 0) continue; else if(strcmp("text3", line) == 0) continue; else { fputs(line, datei_neu); fputs(";", datei_neu); fputs("2008;", datei_neu); fputs("false;", datei_neu); fputs("true;", datei_neu); fputs("false;", datei_neu); fputs("\n", datei_neu); }
  5. Gab's die?! Ok, dann werdens bestimmt nicht so viele Bugs. :floet:
  6. TDM

    Filmzitate, die 10te

    Rambo ist richtig. (Teil weiß ich auch nicht mehr. :floet:)
  7. TDM

    Filmzitate, die 10te

    öhm, was nehm ich nur...
  8. Naja, ich meinte nur, dass man vielleicht lieber noch warten sollte mit dem runterladen, zwecks evtl. Bugs und so. Aber ich freu mich schon auf den Quellcode. :floet:
  9. Vielleicht hilft das ja...
  10. Ich wette das haben die meisten auch bei Vista gemacht. (Anmerkung der Redaktion: runterladen, hrhr.) Und dann waren alle enttäuscht, weil's verbuggt war. (Bei neuer Software meistens so [bei Microsoft aber eher die Regel].)
  11. TDM

    Filmzitate, die 10te

    Sin City?
  12. Solltest du mal wieder in der heimischen Gegend sein, nehm ich dich auch mal mit und du bekommst auch eine ab. (Aber nur die Ausschussware, bei denen der Verschleiß zu hoch ist. )
  13. Mach ich meist auch nicht, nur muss ich dann zu so unmenschlichen Zeiten mitten in der Nacht aufstehen (meistens so nach 14°°) nur um zu schauen, dass ihre DVD-ROM-Jumper falsch gesteckt sind. Nun setz den Mal mit zitternden Händen (begründet durch Alkoholmangel) richtig.
  14. Bei mir kommt als Antwort immer "Codierknecht", danach sagen sie meist, dass ihr PC nicht ordentlich funktioniert und ob ich mit zu ihnen kommen will um mir den mal anzuschauen. Weiber.
  15. TDM

    Polymorphie in Java

    Wenn du einen Angestellten beförderst, wird er ein Abteilungsleiter. folglich: Angestellter a = new Angestellter(); Angestellter b = new Angestellter(); Abteilungsleiter l = null; //tue irgendwas mit a if (a.hatIrgendwas()) { [INDENT]l = a;[/INDENT] l.verteileArbeitan(; } else { [INDENT]l = b;[/INDENT] l.verteileArbeitan(a); } [/code]
  16. Wieder was gelernt. void toStrCsv(char * dest, const int lenDest, const char src[], const int lenSrc) { int i = 0; do { dest[i] = '\0'; } while (++i < lenDest); i = 0; do { if (src[i]==0x00) break; if (src[i]!=0x0A) dest[i] = src[i]; } while (++i < lenSrc); dest[i-1] = '\0'; } Aufruf in Main: toStrCsv(buffer, SIZEOF(buffer), line, SIZEOF(line));
  17. #define SIZEOF(x) (sizeof(x)/sizeof(x[0])) void toStrCsv(char * dest, const char src[]) { int i = 0; do { dest[i] = '\0'; } while (++i <= SIZEOF(dest)); i = 0; do { if (src[i]!=0x0A) dest[i] = src[i]; } while (++i < SIZEOF(src)); dest[i] = '\0'; } besser? Edit: strlen ist doch da, nur in der Überwachungskonsole mag er's irgendwie nicht.
  18. Die kommt auch nicht mit rein. Edit: Der findet bei mir kein strlen. (string.h ist geincludet) Hab mich schon gewundert, warum das immer 4 ist. Natürlich nicht beabsichtigt.
  19. blödes, dämliches VC7 hat nichtmal strlen... Nuja, trotzdem scheints so zu gehen: void toStrCsv(char * dest, const char * src) { int i = 0; do { dest[i] = '\0'; } while (++i < sizeof(dest)); i = 0; do { if (src[i]!=0x0A) dest[i] = src[i]; } while (++i < sizeof(src)); dest[i] = '\0'; } int main(int argc, char* argv[]) { /*COleDateTime t(1970,1,1,14,0,0); srand((int) t); int mod = 36; for(int i = 0; i <= t.GetHour(); i++) { cout << rand()%mod << endl; } cin.get();*/ FILE *datei = fopen("file1.csv", "r"); FILE *datei_neu = fopen("file2.csv", "w+"); if (datei != NULL) { char line [128]; char* buffer = (char*) malloc(sizeof(char) * sizeof(line)); do { if(fgets(line, sizeof(line), datei)) { toStrCsv(buffer, line); if(strcmp("text", buffer) == 0) { continue; } else { fputs(buffer, datei_neu); fputs("2008;", datei_neu); fputs("true;", datei_neu); fputs("false;", datei_neu); fputs("false;", datei_neu); fputs("\n", datei_neu); } } } while (!feof(datei)); free(buffer); buffer = NULL; fclose(datei); fclose(datei_neu); } else { // Fehlerbehandlung } return 0; } btw: dass kein ';' nach buffer kommt, ist gewollt, oder?!
  20. Hast du mal durchdebuggt und dir den Wert der vermeintlichen Zeile angesehen, ob er wirklich nur "text" ist? Ich weißt nicht wie weit fgets geht, vermutlich könnte es sein, dass er das \r oder \n am Ende der Zeile mitnimmt, dann passt der Stringvergleich natürlich nicht mehr.
  21. ok, es war ein Excelproblem. :hells: Hab die überflüssigen Fehlerbehandlungen rausgenommen.
  22. Im Übrigen solltest du beachten, dass strcmp case-sensitive ist, d.h. "text" und "Text" sind 2 unterschiedliche Strings.
  23. Sooooo.... Nach bisschen rumprobieren, hab ichs nun zum Großteil hinbekommen. Um das Schema zu erzeugen nutze ich ja wie gesagt eine andere Funktion: public static void WriteTableSchemaToExcelFile(DataSet dataSet, string fileName) { // Excel im Hintergrund öffnen Excel.Application excel = new Excel.Application(); // Neue Mappe erstellen Excel.Workbook book = excel.Workbooks.Add(Excel.XlWBATemplate.xlWBATWorksheet); foreach(DataTable table in dataSet.Tables) { // Neues Tabellenblatt erstellen Excel.Worksheet sheet = (Excel.Worksheet)book.Sheets.Add(Missing.Value, Missing.Value, Missing.Value, Missing.Value); // Name des Tabellenblatts festlegen sheet.Name = table.TableName; // Spalten der Tabelle durchlaufen for (int i = 1; i <= table.Columns.Count; i++) { DataColumn column = table.Columns[i - 1]; Excel.Range range = (Excel.Range)sheet.Cells[1, i]; range.Value2 = column.ColumnName; range = (Excel.Range)sheet.Cells[2, i]; if (typeof(double) == column.DataType) { range.NumberFormat = "#0,#0"; } else if (typeof(int) == column.DataType) { range.NumberFormat = "#0"; } else { range.NumberFormat = "@"; } } Marshal.ReleaseComObject(sheet); } // Dokument speichern book.SaveAs(fileName, Excel.XlFileFormat.xlWorkbookNormal, Missing.Value, Missing.Value, false, false, Excel.XlSaveAsAccessMode.xlNoChange, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); // COM-Verweise freigeben Marshal.ReleaseComObject(book); // Excel schließen excel.Quit(); // Excel.Application COM-Verweis freigeben Marshal.ReleaseComObject(excel); } Vorher (als es noch nicht ging) hab ich immer den Formatstring von den Tabellenköpfen verändert; nun nehm ich die Zeile drunter - dadurch rutscht komischerweise zwar alles etwas nach unten, aber das ist mir egal und sieht so und so besser aus. Problem was jetzt nur noch besteht, ist, dass ich eine Spalte mit Stringwerten hab, in der meistens Werte im Sinne von "00/00" stehen, es kann aber auch zu den Werten "0000" kommen. So, Problem an der Geschichte ist, dass die Dinger wirklich nur als String eingetragen werden (sollen), Excel bringt mir allerdings weiterhin das grüne Häckchen "Blabla Zahl als String eingetragen usw.". Bei manchen Variationen mit dem Slash, behauptet er sogar was von einem DATE. Wie mach ich dem jetzt klar, dass das nur string ist? Ich mein das Format "@" müsste Excel doch wissen, dass er es nicht konvertieren soll, oder?
  24. Echt? Ich sollte wohl mal wieder mehr mit C programmieren.
  25. Gut, lassen wir das lieber wegen OT. if (strcmp("Text",line)) continue; Folglich springt er wieder hoch zum while und liest die nächste Zeile.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...