2012-12-16 26 views
5

मैं डेटा के बड़े सेट (अलग-अलग लंबाई के पूर्णांक सरणी, टेक्स्ट स्ट्रिंग्स की लाइब्रेरी इत्यादि) को सीधे निष्पादन योग्य फ़ाइल में हार्डकोड करना चाहता हूं, इसलिए कोई अतिरिक्त फ़ाइलें नहीं हैं।हार्डकोडिंग बड़े डेटा निष्पादन योग्य में सेट?

मेरा सवाल है, सी ++ में ऐसा करने के लिए सबसे व्यावहारिक और संगठित विधि क्या है? हेडर या स्रोत फ़ाइलों के संदर्भ में, मैं डेटा कहां रखूं? मुझे किस संरचना का उपयोग करना चाहिए?

मुझे एहसास है कि यह डेटा से निपटने का स्वीकार्य तरीका नहीं है। लेकिन मुझे हास्य!

+0

इसे पहले एसओ पर देखा है ... देख रहे हैं। – djechlin

+0

इसे एक अलग .cpp फ़ाइल में डालने का प्रयास करें, उदाहरण के लिए, 'resource.cpp', फिर इसे' बाहरी 'बनाएं और इसे हेडर फ़ाइल दें। –

+0

http://stackoverflow.com/questions/410980/include-a-text-file-in-a-c-program-as-a-char संबंधित, ठीक वही नहीं जो मैं खोज रहा था। – djechlin

उत्तर

8

सी ++ और सी दोनों के लिए, आप इन चर के लिए घोषणाओं को रखने के लिए हेडर फ़ाइल का उपयोग कर सकते हैं, और उसके बाद वास्तविक प्रारंभिक कोड को .c (या .cc) फ़ाइल में रख सकते हैं। सी और सी ++ दोनों में सभ्य प्रारंभिक वाक्यविन्यास हैं।

mydata.h:

extern int x; 
extern int a[10]; 
extern unsigned char *s; 

mydata.c:

#include "mydata.h" 
int x = 123; 
int a[10] = {1,2,3,4,5,6,7,8,9,10}; 
unsigned char *s = "mystring"; 

तो main.c होगा:

#include "mydata.h" 
#include <stdio.h> 

int main(const int argc, char *argv[]) 
{ 
    printf("%d, %d, %s\n", x,a[5],s); 
} 

परीक्षण चालन इस तरह दिखता है:

उदाहरण के लिए
$gcc -o main main.c mydata.c 
$ ./main 
123, 6, mystring 

अब, वास्तव में व्यवस्थित होने के लिए, कोई आपके डेटा स्रोतों से ऐसी गठित फ़ाइलों को उत्पन्न करने के लिए पर्ल/पायथन/PHP स्क्रिप्ट लिखता है, जैसे सीएसवी फाइलों के एसक्यूएल डेटाबेस।

1

इस प्रयास करें:

http://sourceforge.net/projects/bin2obj/

अपने प्रोजेक्ट में एक OBJ और लिंक करने के लिए अपने डेटा को बदलें।

संबंधित मुद्दे