zip files

  • Moin,
    das Teil habe ich Dir ja geschickt.
    Also das .h File ist ein Include File von mir ( hab mir angewöhnt die .h zu nennen ( jaja ich weiß sind sonst header Dateien)). Entweder Du bindest mit include das File ein, oder packst die Funktionen aus der Datei in Deine Datei (.c) hinein.
    Sonst habe ich Dir auch das minizip und miniunzip Example mitgeschickt oder?
    Das ist von einer der Darwin Apple Seiten. Dort steht noch mal alles komplett drin.

    Nur was ich nicht verstehe? Laut der letzen Email von Dir lief der Code doch oder?
    Warum hattest Dich noch mal per Mail gemeldet?

    Sven
    :wq! /dev/null
  • Original von Nevermind
    ins Headerfile kommt nur

    uLong filetime(f, tmzip, dt);
    BOOL createZip(NSString* filename, NSMutableArray* files, BOOL output);

    das jetztig zipcontrol.h nennst du in zipcontrol.c um und fügst es deinem Projekt zu.

    Den Rest must du schon selbst machen :)

    Das ist übrigens nicht nötig.
    Nur hat er das zipcontrol.h einfach zu hoch eignebunden. Es gehört unter die implementation. Sonst ist es aber Latte, denn man benötigt nun ja nicht zwingende immer eine Header Definition für benutzte Funktionen.

    Sven
    :wq! /dev/null
  • da war ich damals wohl etwas voreilig. im development build style funktioniert
    das auch alles wunderbar, nur eben nicht im deployment build style.
    und da hatte ich es nur im development build style getestet. :sick:
    aber dein letzter tip war gold wert! jetzt funktioniert es!! vielen dank!!!

    jetzt bekomm ich beim kompilieren nur noch eine warnung:

    Quellcode

    1. ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used


    wie muss man das wo einstellen?

    sascha
  • Original von Stalkingwolf
    Original von Nevermind
    ins Headerfile kommt nur

    uLong filetime(f, tmzip, dt);
    BOOL createZip(NSString* filename, NSMutableArray* files, BOOL output);

    das jetztig zipcontrol.h nennst du in zipcontrol.c um und fügst es deinem Projekt zu.

    Den Rest must du schon selbst machen :)

    Das ist übrigens nicht nötig.
    Nur hat er das zipcontrol.h einfach zu hoch eignebunden. Es gehört unter die implementation. Sonst ist es aber Latte, denn man benötigt nun ja nicht zwingende immer eine Header Definition für benutzte Funktionen.

    Sven


    Hast schon recht das es nicht sein muss, aber wer macht den so was wie Files in der Mitte des Codes einbinden? Nur jemand der ein Preis für den unleserlichsten Code gewinner will.
    Aber es geht auch anders: reqiure prototype abstellen, deine .h in .c umbenennen und dem Projekt hinzufügen. Aber bitte kein #include in der Mitte des Codes und keine Implementierungen in ein .h File. Das geht zwar, aber nicht alles was geht ist auch richtig.
  • Warum nicht?
    Ich meine den Code muss ICH lesen und sonst keiner ;)
    und schon mal diversen Code von telnet, mplayer und Co gesehen :)
    Wenn wir schon dabei wären!
    der gcc verleitet dazu, Variablen dort zu deklarieren wo man sie gerade benötigt .... sollte man wegen der Sauberkeit auch nicht tun. Aber schau dir mal den ganzen Cocoa Code an den man im Netz findet.

    Gruß Sven
    :wq! /dev/null
  • Original von Stalkingwolf
    Warum nicht?
    Ich meine den Code muss ICH lesen und sonst keiner ;)
    und schon mal diversen Code von telnet, mplayer und Co gesehen :)
    Wenn wir schon dabei wären!
    der gcc verleitet dazu, Variablen dort zu deklarieren wo man sie gerade benötigt .... sollte man wegen der Sauberkeit auch nicht tun. Aber schau dir mal den ganzen Cocoa Code an den man im Netz findet.


    Meine Mutter sagt immer: die anderen sind doch da kein Maßstab. Mach's besser und sei ein Vorbild ;)

    Max
  • Jo aber meistens kamen sie 2 Tage später mit dem Satz.
    "Warum sind Deine Noten so schlecht ... Nimm dir ein Beispiel an <hierirgendeinenennameneinsetzen>!".

    Also ich nehme mit beim Quellcode schreiben kein Beispiel an irgendwem.
    Es ist bekannt das jeder Programmierer seinen eigenen Still hat und diesen bis auf Blut gerechtfertigt und verteidigt. :D

    Sven
    :wq! /dev/null
  • Original von Stalkingwolf
    Warum nicht?
    Ich meine den Code muss ICH lesen und sonst keiner ;)
    und schon mal diversen Code von telnet, mplayer und Co gesehen :)
    Wenn wir schon dabei wären!
    der gcc verleitet dazu, Variablen dort zu deklarieren wo man sie gerade benötigt .... sollte man wegen der Sauberkeit auch nicht tun. Aber schau dir mal den ganzen Cocoa Code an den man im Netz findet.

    Gruß Sven


    Das mit dem Variablen deklarieren ist nicht so unsauber wie du es darstellst, denn wenn man eine Varibale innerhalb eines If then else statements definiert, kann man sich machmal eine Instanziierung ersparen und das kann bei bestimmten Klassen eine Menge Overhead ersparen. Das ist nicht unsauber, sondern sinnvoll. Und überhaupt hast du schon mal was von precompiled Headern gehört? Also ich kenne keine precompiled "midder" :)
  • Fällr mir gerade so ein. Ist euch schon aufgefallen, das Coder, welche mir Pascal oder Modula angefangen haben, meistens einen saubereren Code schreiben als C-Beginner.

    Also ich für meine Person habe schon immer Wirth-Sprachen, als besser geeignet für Anfänger gesehen. Aber leider gibt es heute zwischen Basic und C/Java (von Stil aus gesehen) keine Sprache mit der man anfangen kann. Schade eigentlich.
  • Original von Nevermind
    Das mit dem Variablen deklarieren ist nicht so unsauber wie du es darstellst, denn wenn man eine Varibale innerhalb eines If then else statements definiert, kann man sich machmal eine Instanziierung ersparen und das kann bei bestimmten Klassen eine Menge Overhead ersparen. Das ist nicht unsauber, sondern sinnvoll.

    Ich weiß, meinereiner macht dies auch überall wo es geht. Varbiablen erst dann deklarieren wenn ich sie wirklich benötige und Sie z.b erst nach Abbruch Bedienungen deklarieren.
    Aber dennoch tun sich viele sehr schwer mit diesem Still.

    und ich extrahiere Code nicht wegen Sauberkeit und / oder Schnelligkeit, sondern einfach um Ihn aus den Füssen zu haben und ihn zu gruppieren in die jeweiligen Nutzungsbereichen. Damit kann es auch vorkommen, das includes irgendwo in der Mitte stehen.

    Sven
    :wq! /dev/null
  • Original von Stalkingwolf
    Original von Nevermind
    Das mit dem Variablen deklarieren ist nicht so unsauber wie du es darstellst, denn wenn man eine Varibale innerhalb eines If then else statements definiert, kann man sich machmal eine Instanziierung ersparen und das kann bei bestimmten Klassen eine Menge Overhead ersparen. Das ist nicht unsauber, sondern sinnvoll.

    Ich weiß, meinereiner macht dies auch überall wo es geht. Varbiablen erst dann deklarieren wenn ich sie wirklich benötige und Sie z.b erst nach Abbruch Bedienungen deklarieren.
    Aber dennoch tun sich viele sehr schwer mit diesem Still.

    und ich extrahiere Code nicht wegen Sauberkeit und / oder Schnelligkeit, sondern einfach um Ihn aus den Füssen zu haben und ihn zu gruppieren in die jeweiligen Nutzungsbereichen. Damit kann es auch vorkommen, das includes irgendwo in der Mitte stehen.

    Sven


    Wenn das der Grund ist, solltest du dir mal oC Categories anschauen. Die sind genau dafür gedacht, seine Klassen in Logische-Blöcke zu teilen und nur da einzubinden wo man sie braucht. Die können zwar auch noch mehr, aber das ist die Hauptaufgabe.
    Wenn du aber die ausgelagerten Methoden ein verschiedenen Klassen brauchst kann du dir immernoch eine util-Klasse mit Klassen-Methoden schreiben. Das ist auch sauber.
    Wenn du das unbedingt deine includes als Marcros misbrauchst bitte, ich muss ja deinen Code nicht lesen, jeder soll mit seinem eigenen Stil leben.

    Da fällt mir ein, was macht eigentlich der Debugger beim durchsteppen durch so einen Code?
  • Original von Nevermind
    Wenn du das unbedingt deine includes als Marcros misbrauchst bitte, ich muss ja deinen Code nicht lesen, jeder soll mit seinem eigenen Stil leben.

    Genau ;) und das mache ich schon seit über 10 Jahren so

    Original von Nevermind
    Da fällt mir ein, was macht eigentlich der Debugger beim durchsteppen durch so einen Code?

    Keine Ahnung, das durchsteppen habe ich seit Turbo Pascal 7 nie wieder angewendet.

    Sven
    :wq! /dev/null
  • Original von Stalkingwolf
    Original von Nevermind
    Wenn du das unbedingt deine includes als Marcros misbrauchst bitte, ich muss ja deinen Code nicht lesen, jeder soll mit seinem eigenen Stil leben.

    Genau ;) und das mache ich schon seit über 10 Jahren so

    Original von Nevermind
    Da fällt mir ein, was macht eigentlich der Debugger beim durchsteppen durch so einen Code?

    Keine Ahnung, das durchsteppen habe ich seit Turbo Pascal 7 nie wieder angewendet.

    Sven


    Hochachtung! sind Turbo Pascal 7 nicht mehr richtig Debuggen müssen, da kann ich nur den Hut ziehen.