2010-03-01 13 views
14

समस्याओं:क्या .NET के लिए printf का नि: शुल्क कार्यान्वयन है?

  • मैं String.Format उपयोग नहीं कर सकते, मैं सी शैली प्रारूप तार है,
  • मैं मूल प्रिंटफ (कोई पी/आमंत्रण) नहीं कह सकता;
  • मैं लाइसेंस के कारण http://www.codeproject.com/KB/printing/PrintfImplementationinCS.aspx का उपयोग नहीं कर सकता, मुझे कुछ जीपीएल-संगत की आवश्यकता है।

क्या .NET ढांचे के लिए printf/sprintf का निःशुल्क कार्यान्वयन है? उपर्युक्त लिंक के अलावा, मुझे कुछ भी नहीं मिला।

धन्यवाद!

अद्यतन:

मदद के लिए धन्यवाद, भले ही आप कुछ भी नहीं मिला। इसका मतलब है कि मुझे इसे खुद करना होगा (मैं इसे टालने की कोशिश कर रहा था, लेकिन ओह अच्छी तरह से ...)
मैंने एक स्पिंटफ फ़ंक्शन पकाया जो मूल प्रारूप स्ट्रिंग का समर्थन करता है, आप इसे यहां पा सकते हैं: https://sourceforge.net/projects/printfnet/। यदि मैं कर सकता हूं तो मैं इसे एक पूर्ण कार्यान्वयन करने की कोशिश करूंगा।

+1

मुझे नहीं पता कि इसमें इतने सारे अपवॉट क्यों हैं। रेगेक्स का उपयोग करके एक कार्यान्वयन शायद छोटे कोड की 30-50 लाइनों में किया जा सकता है ... – leppie

+0

मैं वास्तव में उत्सुक हूं कि आपको बिल्कुल printf क्यों चाहिए ... – swilliams

+0

आप सीपीओएल लाइसेंस का उपयोग क्यों नहीं कर सकते? मैं नहीं देख सकता कि यह आपके जीपीएल आवश्यकता के साथ हस्तक्षेप कैसे करता है। – leppie

उत्तर

2

एक प्रबंधित सी ++ रैपर के बारे में कैसे? बहुत यकीन है कि आप वहां से प्रिंटफ को कॉल कर सकते हैं।

+0

मैं सिल्वरलाइट को भी लक्षित करता हूं, इसलिए मैं देशी कार्यों को कॉल नहीं कर सकता। – Hali

4

मुझे लगता है कि आप इस हैं: http://www.codeproject.com/KB/printing/PrintfImplementationinCS.aspx

यह सी # करने के लिए सी printf समारोह के एक बंदरगाह के एक मुक्त कार्यान्वयन है। आपको अवगत होना चाहिए कि लेखक बताते हैं कि printf की सभी सुविधाएं वर्तमान में समर्थित नहीं हैं - लेकिन यह एक अच्छा प्रारंभिक बिंदु हो सकता है।

संपादित करें: मुझे लगता है कि उस संस्करण का लाइसेंस आपको जो चाहिए उसे संगत नहीं है - उस स्थिति में, मैं निश्चित रूप से निम्न ब्लॉग आलेख पर चर्चा के रूप में अप्रबंधित संस्करण को कॉल करने की सलाह देता हूं। यह शायद करने के लिए सबसे संगत और सबसे सुरक्षित बात है।

http://community.bartdesmet.net/blogs/bart/archive/2006/09/28/4473.aspx

यह इस तरह दिखता है सब आप अप्रबंधित printf से कॉल करने की आवश्यकता है:

तो यह है कि यह कटौती नहीं करता है, यहाँ वास्तव में अप्रबंधित printf समारोह बुला बारे में एक ब्लॉग लेख है सी #:

[DllImport("msvcrt40.dll")] 
public static extern int printf(string format, __arglist); 

static void Main(string[] args) 
{ 
    printf("Hello %s!\n", __arglist("Bart")); 
} 
+0

ध्यान रखें, VS2008/2010 में __arglist टाइप करना आईडीई को क्रैश कर सकता है। एमएस अगले प्रमुख संस्करण तक ठीक नहीं होगा ... – leppie

+0

धन्यवाद, लेकिन मैं सिल्वरलाइट को भी लक्षित करता हूं, इसलिए मैं देशी कार्यों को कॉल नहीं कर सकता। – Hali

4

आपको printf के जीपीएल-संगत कार्यान्वयन को क्यों नहीं मिला है सी में और इसे .NET करने के लिए बंदरगाह?

+0

यदि एलजीपीएल पर्याप्त है, तो ग्लिब का स्रोत कोड यहां है: http://ftp.gnu.org/gnu/glibc/ - stdio-common में printf.c होता है जो vprprintf.c में vprintf फ़ंक्शन को कॉल करता है। सुंदर बालों वाले कोड हालांकि ... –

+0

बिल्कुल, इस विचार को कुल में नकारने के लिए, लेकिन कुछ दिनों में मैंने जो कार्यान्वयन देखा है, वह सी # को पोर्ट करने के लिए अनुपयुक्त से अधिक था - कम से कम अगर आप कोड की देखभाल करते हैं; -) मौजूदा टेस्ट सूट और स्क्रैच से किसी भी तरह के प्रोग्राम को ढूंढना आसान हो सकता है। –

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