1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen

Objective-C: Einlesen und Schreiben von externen Datein

Dieses Thema im Forum "macOS-Developer" wurde erstellt von FFder1., 13.09.09.

  1. FFder1.

    FFder1. Tokyo Rose

    Dabei seit:
    01.02.09
    Beiträge:
    70
    Hallo,

    für die Realisierung meines ersten sinnvollen Programms :) unter Objective-C müsste ich wissen, wie man Text-Dateien (am besten PDF; aber auch plain txt ist möglich) ausliest und wie man dann Ergebnisse des Programms in anderen Datei speichert, die dann noch bei weitern Läufen aktualisiert werden könnte.

    Konkret geht es darum, die Häufigkeit einzelner Wörter in PDFs zu bestimmen und dann auszuwerten.

    Gruß Fabian
     
  2. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
    Hallo,

    die Frage ist zu global und zu unpräzise.

    Viele Grüße
     
  3. FFder1.

    FFder1. Tokyo Rose

    Dabei seit:
    01.02.09
    Beiträge:
    70
    TEXT-DATEI -> Wörter als Strings importieren->Analyse->Speicherung der neuen Ergebnisse in Datei
     
  4. LittlePixel

    LittlePixel Strauwalds neue Goldparmäne

    Dabei seit:
    09.07.08
    Beiträge:
    641
  5. 911insidejob

    911insidejob Erdapfel

    Dabei seit:
    25.07.13
    Beiträge:
    2
  6. MacApple

    MacApple Weißer Winterkalvill

    Dabei seit:
    05.01.04
    Beiträge:
    3.525
    PDF-Dateien sind keine Textdateien in dem Sinn, auch wenn sie Text enthalten. Das PDF-Format ist da etwas komplizierter.
     
  7. Marcel Bresink

    Marcel Bresink Schmalzprinz

    Dabei seit:
    28.05.04
    Beiträge:
    3.615
    Im allgemeinen Fall enthalten PDF-Dateien keinen Text, sondern nur das Druckabbild eines Textes.

    Zur Frage: Angenommen, die Textdatei wäre im UTF8-Code in der Datei /Users/Benutzer/Beispiel.txt gespeichert, dann könnte man mit folgendem Programm anfangen zu arbeiten:

    Code:
    #import <Foundation/Foundation.h>
    
    int main(int argc, const char * argv[]) {
        @autoreleasepool {
            NSString            *fileContents, *currentString = nil;
            NSMutableDictionary *frequenciesByWord;
            NSScanner           *scanner;
            
            fileContents = [NSString stringWithContentsOfFile: @"/Users/Benutzer/Beispiel.txt" encoding: NSUTF8StringEncoding error: NULL];
            frequenciesByWord = [[NSMutableDictionary alloc] init];
            scanner = [[NSScanner alloc] initWithString: fileContents];
            [scanner setCharactersToBeSkipped: [[NSCharacterSet alphanumericCharacterSet] invertedSet]];
            while (! [scanner isAtEnd]) {
                currentString = nil;
                if ([scanner scanCharactersFromSet: [NSCharacterSet alphanumericCharacterSet] intoString: &currentString] &&
    ([currentString length] > 0)) {
                    NSString    *normalizedString;
                    NSNumber    *currentCount;
                    
                    normalizedString = [currentString uppercaseString];
                    currentCount = [frequenciesByWord objectForKey: normalizedString];
                    if (! currentCount)
                        [frequenciesByWord setObject: @1 forKey: normalizedString];
                    else
                        [frequenciesByWord setObject: @([currentCount integerValue] + 1) forKey: normalizedString];
                }
            }
            for (NSString *word in [frequenciesByWord keysSortedByValueUsingSelector: @selector(compare:)])
                printf("%s: %lld\n", [word UTF8String], [[frequenciesByWord objectForKey: word] longLongValue]);
        }
        return 0;
    }
    
    Eine nette kleine Fingerübung … :)
     
    doc_holleday gefällt das.
  8. Thaddäus

    Thaddäus Golden Noble

    Dabei seit:
    27.03.08
    Beiträge:
    15.319
    Euch ist schon klar, dass der Thread bald 9 Jahre alt ist? :p
     
    lx88 und NorbertM gefällt das.

Diese Seite empfehlen