Seite 1 von 1

Tcl Code aus einer Datei einbinden

Verfasst: Mo 29. Jun 2015, 15:27
von Lea1602
Hallo zusammen,

ich habe ein Problem beim einbinden meines Tcl Codes.
Ich lege zuvor die Sprache und so mit lstset fest und füge mit listinputlisting die Datei ein.
\usepackage{listings} % um Quelltext von Dateien einzubinden
\usepackage{color}
\definecolor{leichtgrau}{gray}{.90}

\lstset{
frame={tb}, 
backgroundcolor=\color{leichtgrau}, 
language={tcl}, 
showstringspaces=false, 
basicstyle=\ttfamily\small, 
keywordstyle=\color{red}, 
commentstyle=\color{blue}, 
stringstyle=\color{green}, 
numbers={left},
numberstyle={\normalsize},
numbersep={3pt},
stepnumber={1}
}
mein Code sieht in etwa so aus
unset -nocomplain NET
unset -nocomplain CELL
set fileId [open modul_scu r]
	#einlesen eines Files bis das Ende des Files erreicht ist
	while {![eof $fileId]} {
		#zeilenweise einlesen des Files				
	gets $fileId line
	if {$line== "" || $line=="endmodule"} {continue} 
	if [regexp {^/\*.*\*/$} $line] {continue}
		
	while {![regexp { .*;$} $line]} {
		gets $fileId newline
		#verbiden der beiden Zeilen line und newline
		set line [concat $line $newline]
		#puts $line
	}
		}
	
close $fileId
wenn ich jetzt Kompeliere dann wird im Dokument die stelle farbig dargestellt und auch die Zeilen Nummerierung wird gemacht. Allerdings bleibt das Feld sonst leer

einbinden der Datei mache ich mit
\lstinputlistings [caption={tcl Code}, Label{list:code}]{Datei/Code.tcl}
wenn ich versuche das in einer verbatim Umgebung einzubinden wird gar nichts mehr angezeigt :cry:
\begin{verbatim} 
\lstinputlisting{Datei/Code.tcl}
\end{verbatim}

hoffe jemand hat eine Idee und kann mir Helfen 

Danke  Lea

Verfasst: Mo 29. Jun 2015, 15:39
von Johannes_B
Warum hast du da eine verbatim-Umgebung beim Einlesen der Datei? Mach die mal weg.

Verfasst: Mo 29. Jun 2015, 15:40
von Lea1602
Die hab ich jetzt raus
hatte die da drin weil das so in dem Beispiel stand aber dann zeigt der gar nicht mehr an und ohne die Umgebung gibt der halt nur nen leeres Feld mit Nummerierung aus

Verfasst: Mo 29. Jun 2015, 15:44
von Johannes_B
Nachdem ich mir nun selbst ein Minimalbeispiel basteln musste ....

Der Befehl zum Einbinden des Codes hat hinten kein s, du erhältst deshalb eine entsprechende Fehlermeldung. Außerdem stimmt etwas mit dem Label nicht.

Bild
\begin{filecontents}{\jobname.tcl}

	unset -nocomplain NET
	unset -nocomplain CELL
	set fileId [open modul_scu r]
	#einlesen eines Files bis das Ende des Files erreicht ist
	while {![eof $fileId]} {
		#zeilenweise einlesen des Files            
		gets $fileId line
		if {$line== "" || $line=="endmodule"} {continue}
		if [regexp {^/\*.*\*/$} $line] {continue}

		while {![regexp { .*;$} $line]} {
			gets $fileId newline
			#verbiden der beiden Zeilen line und newline
			set line [concat $line $newline]
			#puts $line
		}
	}

	close $fileId

\end{filecontents}
\documentclass{article}
\usepackage{listings} % um Quelltext von Dateien einzubinden
\usepackage{color}
\definecolor{leichtgrau}{gray}{.90}

\lstset{
	frame={tb},
	backgroundcolor=\color{leichtgrau},
	language={tcl},
	showstringspaces=false,
	basicstyle=\ttfamily\small,
	keywordstyle=\color{red},
	commentstyle=\color{blue},
	stringstyle=\color{green},
	numbers={left},
	numberstyle={\normalsize},
	numbersep={3pt},
	stepnumber={1}
} 

\begin{document}
\lstinputlisting[caption={tcl Code},label={list:code}]{\jobname.tcl}
\end{document}

Verfasst: Mo 29. Jun 2015, 16:12
von u_fischer
Nachdem ich mir nun selbst ein Minimalbeispiel basteln musste ....
Nun, du lässt ihr ja kaum eine Chance, es selbst zu machen.
Johannes_B hat geschrieben: Der Befehl zum Einbinden des Codes hat hinten kein s, du erhältst deshalb eine entsprechende Fehlermeldung. Außerdem stimmt etwas mit dem Label nicht.
Keiner dieser Fehler führt aber zur Problembeschreibung, dass "der halt nur nen leeres Feld mit Nummerierung ausgibt". Lass Lea1602 das Beispiel mal selber machen. Vielleicht kommt sie/er dann selber drauf, was verantwortlich ist. Jemand der tcl-Code schreibt, kann ja nicht ganz unerfahren im Code debuggen sein ...

Verfasst: Mo 29. Jun 2015, 16:20
von Johannes_B
Nun gut, ich halte mich zurück. :-)