cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Discussions

Solve problems, and share tips and tricks with other JMP users.
%3CLINGO-SUB%20id%3D%22lingo-sub-71485%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EEine%20Variable%20in%20einer%20Schleife%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-71485%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%20class%3D%22p1%22%3E%3CSPAN%20class%3D%22s1%22%3EHallo%2C%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22p1%22%3E%3CSPAN%20class%3D%22s1%22%3EIch%20ersetze%20gerne%20die%20Werte%20f%C3%BCr%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22p1%22%3ESpaltennamen%20Start(%3CSPAN%20class%3D%22s2%22%3E%202%3C%2FSPAN%3E%20)%2C%3C%2FP%3E%3CP%20class%3D%22p1%22%3EDatenstarts(%3CSPAN%3E%3C%2FSPAN%3E%3CSPAN%20class%3D%22s2%22%3E%203%3C%2FSPAN%3E%3CSPAN%3E%3C%2FSPAN%3E%20)%20)%3B%3C%2FP%3E%3CP%20class%3D%22p1%22%3E%26nbsp%3B%3C%2FP%3E%3CP%20class%3D%22p1%22%3Eals%20Variable%20wie%20Headstart%3D2%2C%20DataStart%3D3%20in%20den%20Spaltennamen%20Start(HeadStart).%20ich%20benutzte%3C%2FP%3E%3CP%20class%3D%22p1%22%3EEval(Parse(%20%22%3CSPAN%3E%20Spaltennamen%20Start(%22%7C%7CHeadStart%7C%7C%22%3C%2FSPAN%3E%3CSPAN%3E%20)%2C%22%3C%2FSPAN%3E%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3E%20))%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22p1%22%3EIch%20erhalte%20keine%20Fehlermeldung%2C%20aber%20die%20Ergebnisse%20sind%20nicht%20korrekt.%3C%2FP%3E%3CP%20class%3D%22p1%22%3EIch%20sch%C3%A4tze%20Ihre%20Hilfe.%20Danke%3C%2FP%3E%3CP%20class%3D%22p1%22%3E--------------------------------------------------%20--------------%3C%2FP%3E%3CP%20class%3D%22p1%22%3E%3CSPAN%20class%3D%22s1%22%20style%3D%22font-family%3A%20inherit%3B%22%3EF%C3%BCr%3C%2FSPAN%3E%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3E%20(iii%20%3D%3C%2FSPAN%3E%3CSPAN%20class%3D%22s2%22%20style%3D%22font-family%3A%20inherit%3B%22%3E%201%3C%2FSPAN%3E%3CSPAN%20style%3D%22font-family%3A%20inherit%3B%22%3E%20%2C%20iii%20%26lt%3B%3D%20nf%2C%20iii%2B%2B%2C%3C%2FSPAN%3E%3CSPAN%20class%3D%22s3%22%20style%3D%22font-family%3A%20inherit%3B%22%3E%20%2F%2FDies%20startet%20die%20erste%20Schleife%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22p2%22%3E%26nbsp%3B%3C%2FP%3E%3CP%20class%3D%22p1%22%3Efilenow%20%3D%20(filelist%5Biii%5D)%3B%3C%2FP%3E%3CP%20class%3D%22p1%22%3Edt%20%3D%3CSPAN%20class%3D%22s1%22%3E%20Offen%3C%2FSPAN%3E%20(%20filenow%2C%20privat%2C%3C%2FP%3E%3CP%20class%3D%22p1%22%3ESpaltennamen%20Start(%3CSPAN%20class%3D%22s2%22%3E%202%3C%2FSPAN%3E%20)%2C%3C%2FP%3E%3CP%20class%3D%22p1%22%3EDatenstarts(%3CSPAN%20class%3D%22s2%22%3E%203%3C%2FSPAN%3E%20)%20)%3B%3C%2FP%3E%3CP%20class%3D%22p2%22%3E%26nbsp%3B%3C%2FP%3E%3CP%20class%3D%22p1%22%3E%3CSPAN%20class%3D%22s1%22%3ENeue%20Spalte%3C%2FSPAN%3E%20(%3CSPAN%20class%3D%22s5%22%3E%20%22Quelle%22%3C%2FSPAN%3E%20%2C%20Zeichen%2C%20Nominal%20)%3B%3C%2FP%3E%3CP%20class%3D%22p1%22%3E%3AQuelle%20%26lt%3B%26lt%3B%3CSPAN%20class%3D%22s6%22%3E%20Legen%20Sie%20jeden%20Wert%20fest%3C%2FSPAN%3E%20(filenow)%3B%3C%2FP%3E%3CP%20class%3D%22p3%22%3E%2F%2Fdt%26lt%3B%3CNEUE%20spalte%3D%22%22%3E%3C%2FNEUE%3E%3C%2FP%3E%3CP%20class%3D%22p4%22%3E%3CSPAN%20class%3D%22s4%22%3Edt%20%26lt%3B%26lt%3B%3C%2FSPAN%3E%20F%C3%BChren%20Sie%20Formeln%20aus%3CSPAN%20class%3D%22s4%22%3E%20()%3B%3C%2FSPAN%3E%3C%2FP%3E%3CP%20class%3D%22p3%22%3E%2F%2FF%C3%BCge%20die%20aktuelle%20Tabelle%20am%20Ende%20der%20kombinierten%20Datentabelle%20hinzu%3C%2FP%3E%3CP%20class%3D%22p1%22%3Ecctable%20%26lt%3B%26lt%3B%3CSPAN%20class%3D%22s6%22%3E%20Verketten%3C%2FSPAN%3E%20(%3CSPAN%20class%3D%22s1%22%3E%20Datentabelle%3C%2FSPAN%3E%20(%20dt%20)%2C%20An%20erste%20Tabelle%20anh%C3%A4ngen%20)%3B%3C%2FP%3E%3CP%20class%3D%22p3%22%3E%2F%2FDas%20Argument%20%E2%80%9EQuellenspalte%20erstellen%E2%80%9C%20nicht%20verwenden%3C%2FP%3E%3CP%20class%3D%22p3%22%3E%3CSPAN%20class%3D%22s1%22%3ESchlie%C3%9Fen%3C%2FSPAN%3E%3CSPAN%20class%3D%22s4%22%3E%20(%20dt%2C%20NoSave%20)%3B%3C%2FSPAN%3E%20%2F%2F%20Nachdem%20Sie%20die%20Tabelle%20verkettet%20haben%2C%20schlie%C3%9Fen%20Sie%20sie%20und%20fahren%20Sie%20fort%3C%2FP%3E%3CP%20class%3D%22p3%22%3E%3CSPAN%20class%3D%22s4%22%3E)%3B%3C%2FSPAN%3E%20%2F%2FEnde%20der%20ersten%20for-Schleife%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-71601%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Eine%20Variable%20in%20einer%20Schleife%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-71601%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EHm...so%20ist%20es.%20Das%20funktioniert%20bei%20mir%3A%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3En%3D2%3B%20%2F%2F%20b%0Ad%3D4%3B%20%2F%2F%20d%0Aopen(chartoblob(%0A%22a%0Ab%0Ac%0Ad%22)%2Ccolumnnamesstart(n)%2Cdatastarts(d))%3C%2FCODE%3E%3C%2FPRE%3E%0A%3CP%3EIch%20glaube%20nicht%2C%20dass%20die%20Substitution%20daf%C3%BCr%20erforderlich%20ist.%20Freut%20mich%2C%20dass%20Jim%20dich%20zum%20Laufen%20gebracht%20hat!%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-71552%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Eine%20Variable%20in%20einer%20Schleife%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-71552%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EVielen%20Dank%2C%20Jim.%20Es%20funktioniert%20jetzt%20perfekt.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-71526%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Eine%20Variable%20in%20einer%20Schleife%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-71526%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EIch%20w%C3%BCrde%20das%20Open%20in%20die%20Substitution()-Struktur%20einf%C3%BCgen%2C%20um%20die%20%C3%84nderungen%20vorzunehmen%20und%20den%20Code%20auszuf%C3%BChren%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3Edatastart%20%3D%202%3B%0Anamestart%20%3D%201%3B%0A%0AEval(%0A%20Substitute(%0A%20%20%20Expr(%0A%20%20%20%20Open(%0A%20%20%20%20%20%22C%3A%5C...%5Csimple.txt%22%2C%0A%20%20%20%20%20columns(%0A%20%20%20%20%20%20New%20Column(%20%221%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%2C%0A%20%20%20%20%20%20New%20Column(%20%222%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%0A%20%20%20%20%20)%2C%0A%20%20%20%20%20Import%20Settings(%0A%20%20%20%20%20%20End%20Of%20Line(%20CRLF%2C%20CR%2C%20LF%20)%2C%0A%20%20%20%20%20%20End%20Of%20Field(%20Comma%2C%20CSV(%200%20)%20)%2C%0A%20%20%20%20%20%20Strip%20Quotes(%201%20)%2C%0A%20%20%20%20%20%20Use%20Apostrophe%20as%20Quotation%20Mark(%200%20)%2C%0A%20%20%20%20%20%20Use%20Regional%20Settings(%200%20)%2C%0A%20%20%20%20%20%20Scan%20Whole%20File(%201%20)%2C%0A%20%20%20%20%20%20Treat%20empty%20columns%20as%20numeric(%200%20)%2C%0A%20%20%20%20%20%20CompressNumericColumns(%200%20)%2C%0A%20%20%20%20%20%20CompressCharacterColumns(%200%20)%2C%0A%20%20%20%20%20%20CompressAllowListCheck(%200%20)%2C%0A%20%20%20%20%20%20Labels(%201%20)%2C%0A%20%20%20%20%20%20Column%20Names%20Start(%20__namestart__%20)%2C%20%2F%2F%20%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%0A%20%20%20%20%20%20Data%20Starts(%20__datastart__%20)%2C%20%2F%2F%20%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%0A%20%20%20%20%20%20Lines%20To%20Read(%20%22All%22%20)%2C%0A%20%20%20%20%20%20Year%20Rule(%20%2220xx%22%20)%0A%20%20%20%20%20)%0A%20%20%20%20)%0A%20%20%20)%2C%0A%20%20Expr(%20__namestart__%20)%2C%20namestart%2C%0A%20%20Expr(%20__datastart__%20)%2C%20datastart%0A%20)%0A)%3B%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-71517%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Eine%20Variable%20in%20einer%20Schleife%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-71517%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDanke.%20Es%20stimmt%2C%20dass%20Spaltendaten%20und%20Namensanfang%20in%20den%20JMP-Einstellungen%20definiert%20werden%20k%C3%B6nnen.%20Aber%20ich%20habe%20es%20in%20open()%20versucht%20und%20es%20funktioniert%20gut.%20Ich%20muss%20es%20nur%20innerhalb%20von%20open()%20parametrisieren.%3C%2FP%3E%3C%2FLINGO-BODY%3E%3CLINGO-SUB%20id%3D%22lingo-sub-71506%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3EBetreff%3A%20Eine%20Variable%20in%20einer%20Schleife%3C%2FLINGO-SUB%3E%3CLINGO-BODY%20id%3D%22lingo-body-71506%22%20slang%3D%22en-US%22%20mode%3D%22NONE%22%3E%3CP%3EDiese%20Optionen%20finden%20Sie%20in%20den%20Importeinstellungen.%3C%2FP%3E%0A%3CPRE%3E%3CCODE%20class%3D%22%20language-jsl%22%3EOpen(%0A%20%20%22C%3A%5C...%5Csimple.txt%22%2C%0A%20%20columns(%0A%20%20%20%20New%20Column(%20%221%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%2C%0A%20%20%20%20New%20Column(%20%222%22%2C%20Numeric%2C%20%22Continuous%22%2C%20Format(%20%22Best%22%2C%2012%20)%20)%0A%20%20)%2C%0A%20%20Import%20Settings(%0A%20%20%20%20End%20Of%20Line(%20CRLF%2C%20CR%2C%20LF%20)%2C%0A%20%20%20%20End%20Of%20Field(%20Comma%2C%20CSV(%200%20)%20)%2C%0A%20%20%20%20Strip%20Quotes(%201%20)%2C%0A%20%20%20%20Use%20Apostrophe%20as%20Quotation%20Mark(%200%20)%2C%0A%20%20%20%20Use%20Regional%20Settings(%200%20)%2C%0A%20%20%20%20Scan%20Whole%20File(%201%20)%2C%0A%20%20%20%20Treat%20empty%20columns%20as%20numeric(%200%20)%2C%0A%20%20%20%20CompressNumericColumns(%200%20)%2C%0A%20%20%20%20CompressCharacterColumns(%200%20)%2C%0A%20%20%20%20CompressAllowListCheck(%200%20)%2C%0A%20%20%20%20Labels(%201%20)%2C%0A%20%20%20%20Column%20Names%20Start(%201%20)%2C%20%2F%2F%20%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%0A%20%20%20%20Data%20Starts(%202%20)%2C%20%2F%2F%20%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%26lt%3B%0A%20%20%20%20Lines%20To%20Read(%20%22All%22%20)%2C%0A%20%20%20%20Year%20Rule(%20%2220xx%22%20)%0A%20%20)%0A)%3C%2FCODE%3E%3C%2FPRE%3E%3C%2FLINGO-BODY%3E
Choose Language Hide Translation Bar
AT
AT
Level V

A variable in a loop

Hi,

I like to replace the values for

Column Names Start(2),

Data Starts( 3 ) );

 

as a variable like Headstart=2, DataStart=3 in Column Names Start(HeadStart). I used

Eval(Parse( " Column Names Start("||HeadStart||"),"  ));

I get no error but the results are not correct.

I appreciate your help. Thanks

----------------------------------------------------------------

For( iii = 1, iii <= nf, iii++, //this starts the first loop

 

filenow = (filelist[iii]);

dt = Open( filenow, private,

Column Names Start(2),

Data Starts( 3 ) );

 

New Column( "Source", Character, Nominal );

:Source << set each value( filenow );

//dt<<new column("Source", character, nominal)<<set each value(9999);

dt << Run Formulas();

//add the current table to the bottom of the combined data table

cctable << Concatenate( Data Table( dt ), Append to first table );

//don't use "Create Source Column" argument

Close( dt, NoSave );//after concatenating the table, close it and move on

);//end of the first for loop

1 ACCEPTED SOLUTION

Accepted Solutions
txnelson
Super User

Re: A variable in a loop

I would put the open into Substitution() structure to make the changes and to run the code

datastart = 2;
namestart = 1;

Eval(
	Substitute(
			Expr(
				Open(
					"C:\...\simple.txt",
					columns(
						New Column( "1", Numeric, "Continuous", Format( "Best", 12 ) ),
						New Column( "2", Numeric, "Continuous", Format( "Best", 12 ) )
					),
					Import Settings(
						End Of Line( CRLF, CR, LF ),
						End Of Field( Comma, CSV( 0 ) ),
						Strip Quotes( 1 ),
						Use Apostrophe as Quotation Mark( 0 ),
						Use Regional Settings( 0 ),
						Scan Whole File( 1 ),
						Treat empty columns as numeric( 0 ),
						CompressNumericColumns( 0 ),
						CompressCharacterColumns( 0 ),
						CompressAllowListCheck( 0 ),
						Labels( 1 ),
						Column Names Start( __namestart__ ), // <<<<<<<<<<<<<<
						Data Starts( __datastart__ ), // <<<<<<<<<<<<<<<<
						Lines To Read( "All" ),
						Year Rule( "20xx" )
					)
				)
			),
		Expr( __namestart__ ), namestart,
		Expr( __datastart__ ), datastart
	)
);
Jim

View solution in original post

5 REPLIES 5
Craige_Hales
Super User

Re: A variable in a loop

Those options go inside the Import Settings.

Open(
  "C:\...\simple.txt",
  columns(
    New Column( "1", Numeric, "Continuous", Format( "Best", 12 ) ),
    New Column( "2", Numeric, "Continuous", Format( "Best", 12 ) )
  ),
  Import Settings(
    End Of Line( CRLF, CR, LF ),
    End Of Field( Comma, CSV( 0 ) ),
    Strip Quotes( 1 ),
    Use Apostrophe as Quotation Mark( 0 ),
    Use Regional Settings( 0 ),
    Scan Whole File( 1 ),
    Treat empty columns as numeric( 0 ),
    CompressNumericColumns( 0 ),
    CompressCharacterColumns( 0 ),
    CompressAllowListCheck( 0 ),
    Labels( 1 ),
    Column Names Start( 1 ), // <<<<<<<<<<<<<<
    Data Starts( 2 ), // <<<<<<<<<<<<<<<<
    Lines To Read( "All" ),
    Year Rule( "20xx" )
  )
)
Craige
AT
AT
Level V

Re: A variable in a loop

Thanks. It is true that column data and name start can be defined in JMP preferences. But I have tried inside open() and it works fine. I just need to parametrize it inside the open(). 

txnelson
Super User

Re: A variable in a loop

I would put the open into Substitution() structure to make the changes and to run the code

datastart = 2;
namestart = 1;

Eval(
	Substitute(
			Expr(
				Open(
					"C:\...\simple.txt",
					columns(
						New Column( "1", Numeric, "Continuous", Format( "Best", 12 ) ),
						New Column( "2", Numeric, "Continuous", Format( "Best", 12 ) )
					),
					Import Settings(
						End Of Line( CRLF, CR, LF ),
						End Of Field( Comma, CSV( 0 ) ),
						Strip Quotes( 1 ),
						Use Apostrophe as Quotation Mark( 0 ),
						Use Regional Settings( 0 ),
						Scan Whole File( 1 ),
						Treat empty columns as numeric( 0 ),
						CompressNumericColumns( 0 ),
						CompressCharacterColumns( 0 ),
						CompressAllowListCheck( 0 ),
						Labels( 1 ),
						Column Names Start( __namestart__ ), // <<<<<<<<<<<<<<
						Data Starts( __datastart__ ), // <<<<<<<<<<<<<<<<
						Lines To Read( "All" ),
						Year Rule( "20xx" )
					)
				)
			),
		Expr( __namestart__ ), namestart,
		Expr( __datastart__ ), datastart
	)
);
Jim
AT
AT
Level V

Re: A variable in a loop

Thanks so much Jim. It works perfectly now.

Craige_Hales
Super User

Re: A variable in a loop

Hm...so it does. This works for me:

n=2; // b
d=4; // d
open(chartoblob(
"a
b
c
d"),columnnamesstart(n),datastarts(d))

I don't think the substitution is required for this. Glad Jim got you going!

Craige

Recommended Articles