2017-06-27 2 views
0

Ich möchte diesen VB Code in C# konvertieren.Wie kann ich diesen Code in C# konvertieren?

If Right(Trim(ActiveDocument.Bookmarks("\HeadingLevel").Range.Paragraphs(hNumb).Style), 6) = "NoNumb" Then 
h_prefix = sGetDocVar("CTDPrefix") 
SetDocVar "TablePrefix", "Table " & h_prefix & "." 
t_prefix = sGetDocVar("TablePrefix") 
hNumb = "-" 
Else 
h_prefix = sGetDocVar("CTDPrefix") 
SetDocVar "TablePrefix", "Table " & h_prefix & "." 
t_prefix = sGetDocVar("TablePrefix") 
End If 

ich unten Code versucht haben,

if (Strings.Right(Strings.Trim(ActiveDocument.Bookmarks("\\HeadingLevel").Range.Paragraphs(hNumb).Style), 6) == "NoNumb") { 
    h_prefix = sGetDocVar("CTDPrefix"); 
    SetDocVar("TablePrefix", "Table " + h_prefix + "."); 
    t_prefix = sGetDocVar("TablePrefix"); 
    hNumb = "-"; 
} else { 
    h_prefix = sGetDocVar("CTDPrefix"); 
    SetDocVar("TablePrefix", "Table " + h_prefix + "."); 
    t_prefix = sGetDocVar("TablePrefix"); 
} 

But, now I am getting error in Strings.Right , Strings.Trim and Paragraph[hNumb].Style . Here style property not there. These three place error is coming.

Bitte helfen Sie mir ...

+2

Welche Fehler Sie bekommen? Haben Sie auf die microsoft.visualbasic-DLL verwiesen, da diese Methoden keine .NET- sondern VB-Methoden sind. Ich nehme an, dass "Absätze" eine Sammlung wie ein Array oder eine Liste ist, dann verwendet der C# -Indexer '[]' anstelle von '()'. –

+0

Verwenden Sie Online-Code-Konverter [Link] (https://www.carlosag.net/tools/codetranslator/) –

+0

@JayPatel Ich bin ziemlich sicher, dass er schon einige Konverter verwendet, denn wenn er tatsächlich diesen C# -Code eingegeben hätte, hätte er das bemerkt Es gibt keine "Strings.Right" -Methode, die er benutzen kann. –

Antwort

2

versuchen, wie diese

var style = ActiveDocument.Bookmarks("\\HeadingLevel").Range.Paragraphs[hNumb].Style; 
var styleString = style.ToString().Trim(); 
if (styleString.Length >= 6 && styleString.Substring(style.Length - 6) == "NoNumb") 
{ 
    //rest of your code 

kann ich diesen Code nicht versuchen, weil ich haben Sie nicht die Bibliotheken, die Sie verwenden, aber das ist s hould geben Ihnen eine Idee, wie man diesen Code umwandelt.

Wenn Sie zusätzliche Fragen haben, fühlen Sie sich frei zu fragen.

+0

Sir, jetzt bekomme ich diesen Fehler: 'System .__ ComObject 'enthält keine Definition für' Trim '. Im Inneren, wenn die Bedingung nicht Direkt-Fenster wird going.In i überprüft seinen Wert als „Objekt“ – lashja

+1

@lashja zeigt ich meine Antwort bearbeitet haben, versuchen Sie es jetzt – Nino

1

Können Sie das versuchen?

if ((ActiveDocument.Bookmarks("\\HeadingLevel").Range.Paragraphs(hNumb).Style.Trim().Substring((ActiveDocument.Bookmarks("\\HeadingLevel").Range.Paragraphs(hNumb).Style.Trim().Length - 6)) == "NoNumb")) { 
    h_prefix = sGetDocVar("CTDPrefix"); 
    SetDocVar; 
    "TablePrefix"; 
    ("Table " 
       + (h_prefix + ".")); 
    t_prefix = sGetDocVar("TablePrefix"); 
    hNumb = "-"; 
} 
else { 
    h_prefix = sGetDocVar("CTDPrefix"); 
    SetDocVar; 
    "TablePrefix"; 
    ("Table " 
       + (h_prefix + ".")); 
    t_prefix = sGetDocVar("TablePrefix"); 
} 
1

Versuchen folgende:

string bookMark = ActiveDocument.Bookmarks("\\HeadingLevel").Range.Paragraphs(hNumb).Style.ToString(); 
if (bookMark.Trim() == "NoNumb") { 
    h_prefix = sGetDocVar("CTDPrefix"); 
    SetDocVar("TablePrefix", "Table " + h_prefix + "."); 
    t_prefix = sGetDocVar("TablePrefix"); 
    hNumb = "-"; 
} else { 
    h_prefix = sGetDocVar("CTDPrefix"); 
    SetDocVar("TablePrefix", "Table " + h_prefix + "."); 
    t_prefix = sGetDocVar("TablePrefix"); 
} 
+0

Sir, jetzt diesen Fehler: 'System-.__ ComObject‘ enthält keine Definition für 'Trimmen'. Inside if condition wird es nicht gehen. Im Immediate-Fenster habe ich überprüft, es zeigt Wert als "Objekt", wie löse ich das? – lashja

+1

Sieht so aus, als ob VB automatisch eine ToString() ausführt, während C# nicht funktioniert. Korrigierter Code – jdweng

Verwandte Themen