C-Programm?

  1. leo-magic

    leo-magic Thread Starter MacUser Mitglied

    Mitglied seit:
    24.12.2004
    Beiträge:
    1.146
    Zustimmungen:
    2
    Hallo

    Wie kann ich folgendes C-Programm unter Mac OS X laufen lassen??

    Code:
    unsigned char EANcode[14] = "222000000001\0\0";     // sollte  6 ergeben
    
    int CRCSum; 
    int EANPos; 
    int CheckDigit; 
    CRCSum = 0; 
    
    for (int i=0;i<12;i++) { 
      EANPos = EANcode[i]-0x30; 
      if (i%2 == 0) CRCSum += EANPos*1; 
      else          CRCSum += EANPos*3; 
    }
    
    CheckDigit = 10 - (CRCSum%10); 
    CheckDigit = CheckDigit%10; 
    EANcode[12]= CheckDigit+0x30; 
    EANcode[13] = 0 ; 
    printf("%s",EANcode);
    Danke, Léo
     
    leo-magic, 26.09.2006
    #1
  2. oneOeight

    oneOeight MacUser Mitglied

    Mitglied seit:
    23.11.2004
    Beiträge:
    48.160
    Zustimmungen:
    3.885
    das hat zwar nichts mit applescript zu tun, aber installier dir XCode und speicher das da in ein file und dann im terminal "gcc filename"
     
    oneOeight, 26.09.2006
    #2
  3. leo-magic

    leo-magic Thread Starter MacUser Mitglied

    Mitglied seit:
    24.12.2004
    Beiträge:
    1.146
    Zustimmungen:
    2
    Ok, danke.

    Ja, ich weiss, aber wusste sonst nicht, wo posten... (Apple)Script war da noch am passensten... Geht das also nur mit XCode?

    Könnte man das C-Script so umschreiben, und daraus ein Apple-Script machen?

    Léo
     
    leo-magic, 26.09.2006
    #3
  4. theearth2001

    theearth2001 MacUser Mitglied

    Mitglied seit:
    15.01.2006
    Beiträge:
    53
    Zustimmungen:
    0
    Hi,

    sollte locker auch mit Apple-Script funktionieren, ohne jetzt mein C-Wissen aus dem Studium aufzuwärmen... Aber so riesig scheint die Routine ja jetzt nicht zu sein.

    Viele Grüße
    Rüdiger
     
    theearth2001, 26.09.2006
    #4
  5. below

    below MacUser Mitglied

    Mitglied seit:
    15.03.2004
    Beiträge:
    13.289
    Zustimmungen:
    1.086
    Für ein C-Programm musst Du noch eine "main" routine drumbauen. Die ist aber in einem "Shell-Tool" Projekt von Xcode drin.

    Natürlich geht es auch ohne Xcode, direct im Terminal mit gcc.

    Aber mit AppleScript sollte es auch problemlos gehen

    Das hier packst Du in eine Datei "crc.c":
    Code:
    #include <stdio.h>
    
    int main (int argc, void * argv)
    {
    	unsigned char EANcode[14] = "222000000001\0\0";     // sollte  6 ergeben
    
    	int CRCSum; 
    	int EANPos; 
    	int CheckDigit; 
    	int i;
    
    	CRCSum = 0; 
    
    	for (i=0;i<12;i++) { 
    		EANPos = EANcode[i]-0x30; 
    		if (i%2 == 0) CRCSum += EANPos*1; 
    		else          CRCSum += EANPos*3; 
    	}
    
    	CheckDigit = 10 - (CRCSum%10); 
    	CheckDigit = CheckDigit%10; 
    	EANcode[12]= CheckDigit+0x30; 
    	EANcode[13] = 0 ; 
    	printf("%s\n",EANcode);
    	return 0;
    }
    Dann gibts Du im Terminal ein:

    gcc -o crc crc.c

    Danach kannst Du es mit

    ./crc

    ausführen.

    Alex
     
    below, 26.09.2006
    #5
  6. leo-magic

    leo-magic Thread Starter MacUser Mitglied

    Mitglied seit:
    24.12.2004
    Beiträge:
    1.146
    Zustimmungen:
    2
    Code:
    gcc: command not found
    
     
    leo-magic, 26.09.2006
    #6
  7. Unixx

    Unixx MacUser Mitglied

    Mitglied seit:
    25.08.2004
    Beiträge:
    549
    Zustimmungen:
    19
    Dann installiere XCode, da ist der gcc mit enthalten.
     
    Unixx, 26.09.2006
    #7
  8. below

    below MacUser Mitglied

    Mitglied seit:
    15.03.2004
    Beiträge:
    13.289
    Zustimmungen:
    1.086
    Und weil ich ja sonst nichts zu tun habe, AppleScript

    Code:
    set EANCode to "222000000001" as string
    -- sollte  6 ergeben
    set CRCSum to 0
    
    set i to 1
    
    repeat while i < 13
    	set EANPos to (character i of EANCode) - 48
    	if (i mod 2) is equal to 0 then
    		set CRCSum to CRCSum + EANPos * 1
    	else
    		set CRCSum to CRCSum + EANPos * 3
    	end if
    	set i to i + 1
    end repeat
    
    
    set CheckDigit to 10 - (CRCSum mod 10)
    set CheckDigit to CheckDigit mod 10
    set EANCode to EANCode & (ASCII character (CheckDigit + 48))
    
    return EANCode
    Alex
     
    below, 26.09.2006
    #8
  9. leo-magic

    leo-magic Thread Starter MacUser Mitglied

    Mitglied seit:
    24.12.2004
    Beiträge:
    1.146
    Zustimmungen:
    2
    Hey! Danke vielmal! Funktioniert prima!! Danke für die Mühe!!!

    Léo
     
    leo-magic, 26.09.2006
    #9
Die Seite wird geladen...