मैं एक ही बात आज की तलाश में किया गया है ...
यह एक Inno सेटअप स्क्रिप्ट के बारे में ठीक काम करता है। इस स्क्रिप्ट को प्रक्रिया/फ़ंक्शन से पहले अपनी स्क्रिप्ट के अंदर पेस्ट करें जो इस "विभाजन" प्रक्रिया को कॉल करेगा।
तुम भी एक समारोह पर इस संशोधित कर सकते हैं, और यदि आप चाहें ...
procedure Explode(var Dest: TArrayOfString; Text: String; Separator: String);
var
i, p: Integer;
begin
i := 0;
repeat
SetArrayLength(Dest, i+1);
p := Pos(Separator,Text);
if p > 0 then begin
Dest[i] := Copy(Text, 1, p-1);
Text := Copy(Text, p + Length(Separator), Length(Text));
i := i + 1;
end else begin
Dest[i] := Text;
Text := '';
end;
until Length(Text)=0;
end;
procedure Whatever();
var
str: String;
strArray: TArrayOfString;
i: Integer;
begin
Explode(strArray,str,'.');
for i:=0 to GetArrayLength(strArray)-1 do begin
//do something
end;
end;
here
स्रोत
2014-05-23 20:58:57
आप शायद ऐसा कर सकते हैं, लेकिन यह फायदेमंद हो सकता है अगर आपने समझाया कि आप ऐसा क्यों करना चाहते हैं; ऐसा लगता है कि आप किसी संस्करण संख्या के साथ कुछ करने का प्रयास कर रहे हैं, और जो भी आप करने का प्रयास कर रहे हैं उसके आधार पर ऐसा करने का एक आसान तरीका हो सकता है। यह निश्चित रूप से आपके द्वारा पोस्ट किए गए वाक्यविन्यास जैसी किसी भी चीज़ का उपयोग नहीं करेगा, जो InnoSetup पास्कल स्क्रिप्ट से अधिक सी/सी # है। –
उस स्ट्रिंग को "विभाजित" करने का कोई तरीका नहीं है। इसे पार्स किया जाना चाहिए। लेकिन उपरोक्त टिप्पणी में @ केन पूछने के उद्देश्य से बेहतर तरीके से व्याख्या करने का प्रयास करें। – TLama
@TLama: ठीक है, आप एक फ़ंक्शन लिख सकते हैं जिसने इसे पार्स किया और "विभाजन" स्ट्रिंग वापस कर दी, और इसे "स्प्लिट" नाम दिया। :-) –