[{"data":1,"prerenderedAt":1688},["ShallowReactive",2],{"/csv":3,"/csv-surround":1678},{"id":4,"title":5,"body":6,"description":1652,"extension":1653,"meta":1654,"navigation":1671,"path":1675,"seo":1676,"stem":12,"__hash__":1677},"content/csv.md","CSV Extension",{"type":7,"value":8,"toc":1604},"minimark",[9,22,32,42,68,77,80,231,234,243,246,422,431,450,459,467,476,510,519,548,557,891,969,1384,1448,1518],[10,11,15],"h1",{"id":12,"className":13},"csv",[14],"section-heading",[16,17,21],"a",{"className":18,"href":20},[19],"section-anchor","#csv","CSV",[23,24,27],"h2",{"id":25,"className":26},"common-use-cases-and-examples",[14],[16,28,31],{"className":29,"href":30},[19],"#common-use-cases-and-examples","Common use cases and examples",[33,34,37],"h3",{"id":35,"className":36},"read-a-file-all-at-once",[14],[16,38,41],{"className":39,"href":40},[19],"#read-a-file-all-at-once","Read a file all at once",[43,44,45,46,62,63,67],"p",{},"Just use ",[47,48,49,56,57],"code",{},[50,51,55],"span",{"className":52},[53,54],"token","variable","csv:from-file"," ",[50,58,61],{"className":59},[53,60],"string","\"/path/to/myfile.csv\"","! See ",[16,64,66],{"href":65},"#csvfrom-file","from-file"," for more information.",[33,69,72],{"id":70,"className":71},"read-a-file-one-line-at-a-time",[14],[16,73,76],{"className":74,"href":75},[19],"#read-a-file-one-line-at-a-time","Read a file one line at a time",[43,78,79],{},"For really big files, you may not want to store the entire file in memory, but rather just process it a line at a time. For instance, if you want to sum each of the columns of a numeric CSV file, you can do:",[81,82,83],"pre",{},[47,84,85,56,90,94,95,99,100,103,104,56,109,112,103,114,56,118,56,122,56,126,131,103,133,94,137,56,141,145,146,148,149,56,153,56,157,56,160,163,148,165,56,168,171,172,176,177,56,181,185,186,56,190,56,193,56,197,185,200,56,203,206,207,209,210,103,212,216,103,218,56,222,225],{},[50,86,89],{"className":87},[53,88],"keyword","to-report",[50,91,93],{"className":92},[53,54],"sum-columns"," [ ",[50,96,98],{"className":97},[53,54],"file"," ]",[101,102],"br",{},"  ",[50,105,108],{"className":106},[53,107],"command","file-open",[50,110,98],{"className":111},[53,54],[101,113],{},[50,115,117],{"className":116},[53,107],"set",[50,119,121],{"className":120},[53,54],"result",[50,123,125],{"className":124},[53,54],"csv:from-row",[50,127,130],{"className":128},[53,129],"reporter","file-read-line",[101,132],{},[50,134,136],{"className":135},[53,107],"while",[50,138,140],{"className":139},[53,129],"not",[50,142,144],{"className":143},[53,129],"file-at-end?"," ] [",[101,147],{},"    ",[50,150,152],{"className":151},[53,107],"let",[50,154,156],{"className":155},[53,54],"row",[50,158,125],{"className":159},[53,54],[50,161,130],{"className":162},[53,129],[101,164],{},[50,166,117],{"className":167},[53,107],[50,169,121],{"className":170},[53,54]," (",[50,173,175],{"className":174},[53,129],"map"," [ [ [",[50,178,180],{"className":179},[53,54],"col-total",[50,182,184],{"className":183},[53,54],"new-val","] ",[50,187,189],{"className":188},[53,129],"->",[50,191,180],{"className":192},[53,54],[50,194,196],{"className":195},[53,129],"+",[50,198,184],{"className":199},[53,54],[50,201,121],{"className":202},[53,54],[50,204,156],{"className":205},[53,54],")",[101,208],{},"  ]",[101,211],{},[50,213,215],{"className":214},[53,107],"file-close",[101,217],{},[50,219,221],{"className":220},[53,107],"report",[50,223,121],{"className":224},[53,54],[50,226,228,230],{"className":227},[53,88],[101,229],{},"end",[43,232,233],{},"You can also use this technique to…",[33,235,238],{"id":236,"className":237},"read-a-file-one-line-per-tick",[14],[16,239,242],{"className":240,"href":241},[19],"#read-a-file-one-line-per-tick","Read a file one line per tick",[43,244,245],{},"Here’s an example model that reads in a file one line per tick:",[81,247,248],{},[47,249,250,94,254,99,258,260,56,266,270,103,272,276,103,278,56,282,56,286,56,290,56,294,56,298,56,302,56,306,56,310,314,103,316,56,319,323,103,325,56,328,56,332,56,335,56,339,343,103,345,349,354,356,56,361,365,103,367,56,371,94,374,99,378,103,380,56,383,56,386,56,389,392,103,394,56,397,56,401,56,405,56,408,411,103,413,417],{},[50,251,253],{"className":252},[53,88],"globals",[50,255,257],{"className":256},[53,54],"data",[101,259],{},[50,261,263,265],{"className":262},[53,88],[101,264],{},"to",[50,267,269],{"className":268},[53,54],"setup",[101,271],{},[50,273,275],{"className":274},[53,107],"clear-all",[101,277],{},[50,279,281],{"className":280},[53,107],"file-close-all",[50,283,285],{"className":284},[53,54],"%",[50,287,289],{"className":288},[53,54],"Close",[50,291,293],{"className":292},[53,54],"any",[50,295,297],{"className":296},[53,54],"files",[50,299,301],{"className":300},[53,54],"open",[50,303,305],{"className":304},[53,54],"from",[50,307,309],{"className":308},[53,129],"last",[50,311,313],{"className":312},[53,107],"run",[101,315],{},[50,317,108],{"className":318},[53,107],[50,320,322],{"className":321},[53,60],"\"data.csv\"",[101,324],{},[50,326,285],{"className":327},[53,54],[50,329,331],{"className":330},[53,129],"other",[50,333,269],{"className":334},[53,54],[50,336,338],{"className":337},[53,54],"goes",[50,340,342],{"className":341},[53,54],"here",[101,344],{},[50,346,348],{"className":347},[53,107],"reset-ticks",[50,350,352,230],{"className":351},[53,88],[101,353],{},[101,355],{},[50,357,359,265],{"className":358},[53,88],[101,360],{},[50,362,364],{"className":363},[53,54],"go",[101,366],{},[50,368,370],{"className":369},[53,107],"if",[50,372,144],{"className":373},[53,129],[50,375,377],{"className":376},[53,107],"stop",[101,379],{},[50,381,117],{"className":382},[53,107],[50,384,257],{"className":385},[53,54],[50,387,125],{"className":388},[53,54],[50,390,130],{"className":391},[53,129],[101,393],{},[50,395,285],{"className":396},[53,54],[50,398,400],{"className":399},[53,54],"model",[50,402,404],{"className":403},[53,54],"update",[50,406,338],{"className":407},[53,54],[50,409,342],{"className":410},[53,54],[101,412],{},[50,414,416],{"className":415},[53,107],"tick",[50,418,420,230],{"className":419},[53,88],[101,421],{},[33,423,426],{"id":424,"className":425},"write-a-file",[14],[16,427,430],{"className":428,"href":429},[19],"#write-a-file","Write a file",[43,432,45,433,62,446,67],{},[47,434,435,56,439,56,442],{},[50,436,438],{"className":437},[53,54],"csv:to-file",[50,440,61],{"className":441},[53,60],[50,443,445],{"className":444},[53,54],"my-data",[16,447,449],{"href":448},"#csvto-file","to-file",[23,451,454],{"id":452,"className":453},"primitives",[14],[16,455,458],{"className":456,"href":457},[19],"#primitives","Primitives",[43,460,461,462,466],{},"Looking for the primitive reference for the CSV extension? You can find ",[16,463,465],{"href":464},"/csv/dictionary","the full reference here",".",[33,468,471],{"id":469,"className":470},"parsing-csv-input-to-netlogo-data",[14],[16,472,475],{"className":473,"href":474},[19],"#parsing-csv-input-to-netlogo-data","Parsing CSV input to NetLogo data",[477,478,480,481,487,488,493,494,487,501,493,504],"div",{"id":479},"parsing","\n  ",[16,482,485],{"className":483,"href":484},[47],"#from-row",[47,486,125],{},"\n   ",[50,489,492],{"className":490},[491],"font-bold"," · "," \n  ",[16,495,498],{"className":496,"href":497},[47],"#from-string",[47,499,500],{},"csv:from-string",[50,502,492],{"className":503},[491],[16,505,508],{"className":506,"href":507},[47],"#from-file",[47,509,55],{},[33,511,514],{"id":512,"className":513},"formatting-netlogo-data-as-csv",[14],[16,515,518],{"className":516,"href":517},[19],"#formatting-netlogo-data-as-csv","Formatting NetLogo data as CSV",[477,520,480,522,487,529,493,532,487,539,493,542],{"id":521},"writing",[16,523,526],{"className":524,"href":525},[47],"#to-row",[47,527,528],{},"csv:to-row",[50,530,492],{"className":531},[491],[16,533,536],{"className":534,"href":535},[47],"#to-string",[47,537,538],{},"csv:to-string",[50,540,492],{"className":541},[491],[16,543,546],{"className":544,"href":545},[47],"#to-file",[47,547,438],{},[33,549,552],{"id":550,"className":551},"all-primitives",[14],[16,553,556],{"className":554,"href":555},[19],"#all-primitives","All Primitives",[477,558,480,562,480,568,594,597,636,639,677,680,734,737,772,782,817,820,857,860],{"className":559,"id":561},[560],"dict_entry","from-row",[33,563,565,566,480],{"id":564},"csvfrom-row","\n    ",[16,567,125],{"href":484},[569,570,573],"h4",{"id":571,"className":572},"csvfrom-row-netlogo-string-csvfrom-row-netlogo-string-delimiter",[14],[16,574,565,577,565,586,480],{"className":575,"href":576},[19],"#----csvfrom-row-netlogo-string----csvfrom-row-netlogo-string-delimiter--",[50,578,581,582],{"className":579},[580],"prim_example","csv:from-row ",[583,584,585],"i",{},"netlogo-string",[50,587,581,589,56,591],{"className":588},[580],[583,590,585],{},[583,592,593],{},"delimiter",[43,595,596],{},"Parses the given string as though it were a row from a CSV file and returns it as a list of values. For example:",[81,598,599],{},[47,600,601,56,605,56,609,56,612,616,618,622,623,56,627,56,631,635],{},[50,602,604],{"className":603},[53,54],"observer>",[50,606,608],{"className":607},[53,107],"show",[50,610,125],{"className":611},[53,54],[50,613,615],{"className":614},[53,60],"\"one,two,three\"",[101,617],{},[50,619,621],{"className":620},[53,54],"observer:"," [",[50,624,626],{"className":625},[53,60],"\"one\"",[50,628,630],{"className":629},[53,60],"\"two\"",[50,632,634],{"className":633},[53,60],"\"three\"","]",[43,637,638],{},"Quotes can be used when items contain commas:",[81,640,641],{},[47,642,643,56,646,56,649,56,652,656,658,622,661,56,665,56,669,56,673,635],{},[50,644,604],{"className":645},[53,54],[50,647,608],{"className":648},[53,107],[50,650,125],{"className":651},[53,54],[50,653,655],{"className":654},[53,60],"\"there's,a,comma,\\\"in,here\\\"\"",[101,657],{},[50,659,621],{"className":660},[53,54],[50,662,664],{"className":663},[53,60],"\"there's\"",[50,666,668],{"className":667},[53,60],"\"a\"",[50,670,672],{"className":671},[53,60],"\"comma\"",[50,674,676],{"className":675},[53,60],"\"in,here\"",[43,678,679],{},"You can put two quotes in a row to put an actual quote in an entry. If the entry is not quoted, you can just use one quote:",[81,681,682],{},[47,683,684,56,687,171,691,56,694,698,699,703,705,56,709,56,713,717,719,56,723,56,727,56,730],{},[50,685,604],{"className":686},[53,54],[50,688,690],{"className":689},[53,107],"foreach",[50,692,125],{"className":693},[53,54],[50,695,697],{"className":696},[53,60],"\"he said \\\"hi there\\\",\\\"afterwards, she said \\\"\\\"hello\\\"\\\"\\\"\"",") ",[50,700,702],{"className":701},[53,107],"print",[101,704],{},[50,706,708],{"className":707},[53,54],"he",[50,710,712],{"className":711},[53,54],"said",[50,714,716],{"className":715},[53,60],"\"hi there\"",[101,718],{},[50,720,722],{"className":721},[53,54],"afterwards,",[50,724,726],{"className":725},[53,54],"she",[50,728,712],{"className":729},[53,54],[50,731,733],{"className":732},[53,60],"\"hello\"",[43,735,736],{},"Number-like-entries will be parsed as numbers:",[81,738,739],{},[47,740,741,56,744,56,747,56,750,754,756,622,759,56,764,56,768,635],{},[50,742,604],{"className":743},[53,54],[50,745,608],{"className":746},[53,107],[50,748,125],{"className":749},[53,54],[50,751,753],{"className":752},[53,60],"\"1,-2.5,1e3\"",[101,755],{},[50,757,621],{"className":758},[53,54],[50,760,763],{"className":761},[53,762],"number","1",[50,765,767],{"className":766},[53,762],"-2.5",[50,769,771],{"className":770},[53,762],"1000",[43,773,774,777,778,781],{},[47,775,776],{},"true"," and ",[47,779,780],{},"false"," with any capitalization will be parsed as booleans:",[81,783,784],{},[47,785,786,56,789,56,792,56,795,799,801,622,804,56,808,56,811,56,814,635],{},[50,787,604],{"className":788},[53,54],[50,790,608],{"className":791},[53,107],[50,793,125],{"className":794},[53,54],[50,796,798],{"className":797},[53,60],"\"true,TRUE,False,falsE\"",[101,800],{},[50,802,621],{"className":803},[53,54],[50,805,776],{"className":806},[53,807],"constant",[50,809,776],{"className":810},[53,807],[50,812,780],{"className":813},[53,807],[50,815,780],{"className":816},[53,807],[43,818,819],{},"To use a different delimiter, you can specify a second, optional argument. Only single character delimiters are supported:",[81,821,822],{},[47,823,824,56,827,171,830,56,833,56,837,206,841,843,622,846,56,849,56,853,635],{},[50,825,604],{"className":826},[53,54],[50,828,608],{"className":829},[53,107],[50,831,125],{"className":832},[53,54],[50,834,836],{"className":835},[53,60],"\"1;2;3\"",[50,838,840],{"className":839},[53,60],"\";\"",[101,842],{},[50,844,621],{"className":845},[53,54],[50,847,763],{"className":848},[53,762],[50,850,852],{"className":851},[53,762],"2",[50,854,856],{"className":855},[53,762],"3",[43,858,859],{},"Different types of values can be mixed freely:",[81,861,862],{},[47,863,864,56,867,56,870,56,873,877,879,622,882,56,885,56,888,635],{},[50,865,604],{"className":866},[53,54],[50,868,608],{"className":869},[53,107],[50,871,125],{"className":872},[53,54],[50,874,876],{"className":875},[53,60],"\"one,2,true\"",[101,878],{},[50,880,621],{"className":881},[53,54],[50,883,626],{"className":884},[53,60],[50,886,852],{"className":887},[53,762],[50,889,776],{"className":890},[53,807],[477,892,480,895,480,900,921,924],{"className":893,"id":894},[560],"from-string",[33,896,565,898,480],{"id":897},"csvfrom-string",[16,899,500],{"href":497},[569,901,904],{"id":902,"className":903},"csvfrom-string-netlogo-string-csvfrom-string-netlogo-string-delimiter",[14],[16,905,565,908,565,914,480],{"className":906,"href":907},[19],"#----csvfrom-string-netlogo-string----csvfrom-string-netlogo-string-delimiter--",[50,909,911,912],{"className":910},[580],"csv:from-string ",[583,913,585],{},[50,915,911,917,56,919],{"className":916},[580],[583,918,585],{},[583,920,593],{},[43,922,923],{},"Parses a string representation of one or more CSV rows and returns it as a list of lists of values. For example:",[81,925,926],{},[47,927,928,56,931,56,934,56,937,941,943,946,947,56,950,56,953,956,957,56,961,56,965,968],{},[50,929,604],{"className":930},[53,54],[50,932,608],{"className":933},[53,107],[50,935,500],{"className":936},[53,54],[50,938,940],{"className":939},[53,60],"\"1,two,3\\nfour,5,true\"",[101,942],{},[50,944,621],{"className":945},[53,54]," [[",[50,948,763],{"className":949},[53,762],[50,951,630],{"className":952},[53,60],[50,954,856],{"className":955},[53,762],"] [",[50,958,960],{"className":959},[53,60],"\"four\"",[50,962,964],{"className":963},[53,762],"5",[50,966,776],{"className":967},[53,807],"]]",[477,970,480,972,480,977,999,1006,1032,1035,1101,1128,1204,1207],{"className":971,"id":66},[560],[33,973,565,975,480],{"id":974},"csvfrom-file",[16,976,55],{"href":507},[569,978,981],{"id":979,"className":980},"csvfrom-file-csv-file-csvfrom-file-csv-file-delimiter",[14],[16,982,565,985,565,992,480],{"className":983,"href":984},[19],"#----csvfrom-file-csv-file----csvfrom-file-csv-file-delimiter--",[50,986,988,989],{"className":987},[580],"csv:from-file ",[583,990,991],{},"csv-file",[50,993,988,995,56,997],{"className":994},[580],[583,996,991],{},[583,998,593],{},[43,1000,1001,1002,1005],{},"Parses an entire CSV file to a list of lists of values. For example, if we have a file ",[47,1003,1004],{},"example.csv"," that contains:",[81,1007,1008],{},[47,1009,1010,1014,1016,1020,1022,1026,1028],{},[50,1011,1013],{"className":1012},[53,54],"1,2,3",[101,1015],{},[50,1017,1019],{"className":1018},[53,54],"4,5,6",[101,1021],{},[50,1023,1025],{"className":1024},[53,54],"7,8,9",[101,1027],{},[50,1029,1031],{"className":1030},[53,54],"10,11,12",[43,1033,1034],{},"Then, we get:",[81,1036,1037],{},[47,1038,1039,56,1042,56,1045,56,1048,1052,1054,946,1057,56,1060,56,1063,956,1066,56,1070,56,1073,956,1077,56,1081,56,1085,956,1089,56,1093,56,1097,968],{},[50,1040,604],{"className":1041},[53,54],[50,1043,608],{"className":1044},[53,107],[50,1046,55],{"className":1047},[53,54],[50,1049,1051],{"className":1050},[53,60],"\"example.csv\"",[101,1053],{},[50,1055,621],{"className":1056},[53,54],[50,1058,763],{"className":1059},[53,762],[50,1061,852],{"className":1062},[53,762],[50,1064,856],{"className":1065},[53,762],[50,1067,1069],{"className":1068},[53,762],"4",[50,1071,964],{"className":1072},[53,762],[50,1074,1076],{"className":1075},[53,762],"6",[50,1078,1080],{"className":1079},[53,762],"7",[50,1082,1084],{"className":1083},[53,762],"8",[50,1086,1088],{"className":1087},[53,762],"9",[50,1090,1092],{"className":1091},[53,762],"10",[50,1094,1096],{"className":1095},[53,762],"11",[50,1098,1100],{"className":1099},[53,762],"12",[43,1102,1103,1104,1124,1125,1005],{},"The parser doesn’t care if the rows have different numbers of items on them. The number of items in the rows list\nwill always be ",[47,1105,1106,56,1110,56,1114,56,1118,56,1121],{},[50,1107,1109],{"className":1108},[53,54],"\u003Cnumber",[50,1111,1113],{"className":1112},[53,129],"of",[50,1115,1117],{"className":1116},[53,54],"delimiters>",[50,1119,196],{"className":1120},[53,129],[50,1122,763],{"className":1123},[53,762],", though blank lines are skipped. This makes handling files with headers\nquite easy. For instance, if we have ",[47,1126,1127],{},"header.csv",[81,1129,1130],{},[47,1131,1132,56,1136,1140,1142,1146,1148,1150,1154,1156,1160,1162,1166,1168,1170,1174,1176,1180,1182,1186,1188,1192,1194,1198,1200],{},[50,1133,1135],{"className":1134},[53,54],"My",[50,1137,1139],{"className":1138},[53,54],"Data",[101,1141],{},[50,1143,1145],{"className":1144},[53,54],"2/1/2015",[101,1147],{},[101,1149],{},[50,1151,1153],{"className":1152},[53,54],"Parameters:",[101,1155],{},[50,1157,1159],{"className":1158},[53,54],"start,stop,resolution,population,birth?",[101,1161],{},[50,1163,1165],{"className":1164},[53,54],"0,4,1,100,true",[101,1167],{},[101,1169],{},[50,1171,1173],{"className":1172},[53,54],"Data:",[101,1175],{},[50,1177,1179],{"className":1178},[53,54],"time,x,y",[101,1181],{},[50,1183,1185],{"className":1184},[53,54],"0,0,0",[101,1187],{},[50,1189,1191],{"className":1190},[53,54],"1,1,1",[101,1193],{},[50,1195,1197],{"className":1196},[53,54],"2,4,8",[101,1199],{},[50,1201,1203],{"className":1202},[53,54],"3,9,27",[43,1205,1206],{},"This gives:",[81,1208,1209],{},[47,1210,1211,56,1214,56,1217,56,1220,56,1224,1227,1229,622,1232,635,1236,1238,622,1241,635,1245,1247,622,1250,635,1254,1256,622,1259,56,1263,56,1267,56,1271,56,1275,635,1279,1281,622,1284,56,1288,56,1291,56,1294,56,1298,635,1301,1303,622,1306,635,1310,1312,622,1315,56,1319,56,1323,635,1327,1329,622,1332,56,1335,56,1338,635,1341,1343,622,1346,56,1349,56,1352,635,1355,1357,622,1360,56,1363,56,1366,635,1369,1371,622,1374,56,1377,56,1380,635],{},[50,1212,604],{"className":1213},[53,54],[50,1215,690],{"className":1216},[53,107],[50,1218,55],{"className":1219},[53,54],[50,1221,1223],{"className":1222},[53,60],"\"header.csv\"",[50,1225,608],{"className":1226},[53,107],[101,1228],{},[50,1230,621],{"className":1231},[53,54],[50,1233,1235],{"className":1234},[53,60],"\"My Data\"",[101,1237],{},[50,1239,621],{"className":1240},[53,54],[50,1242,1244],{"className":1243},[53,60],"\"2/1/2015\"",[101,1246],{},[50,1248,621],{"className":1249},[53,54],[50,1251,1253],{"className":1252},[53,60],"\"Parameters:\"",[101,1255],{},[50,1257,621],{"className":1258},[53,54],[50,1260,1262],{"className":1261},[53,60],"\"start\"",[50,1264,1266],{"className":1265},[53,60],"\"stop\"",[50,1268,1270],{"className":1269},[53,60],"\"resolution\"",[50,1272,1274],{"className":1273},[53,60],"\"population\"",[50,1276,1278],{"className":1277},[53,60],"\"birth?\"",[101,1280],{},[50,1282,621],{"className":1283},[53,54],[50,1285,1287],{"className":1286},[53,762],"0",[50,1289,1069],{"className":1290},[53,762],[50,1292,763],{"className":1293},[53,762],[50,1295,1297],{"className":1296},[53,762],"100",[50,1299,776],{"className":1300},[53,807],[101,1302],{},[50,1304,621],{"className":1305},[53,54],[50,1307,1309],{"className":1308},[53,60],"\"Data:\"",[101,1311],{},[50,1313,621],{"className":1314},[53,54],[50,1316,1318],{"className":1317},[53,60],"\"time\"",[50,1320,1322],{"className":1321},[53,60],"\"x\"",[50,1324,1326],{"className":1325},[53,60],"\"y\"",[101,1328],{},[50,1330,621],{"className":1331},[53,54],[50,1333,1287],{"className":1334},[53,762],[50,1336,1287],{"className":1337},[53,762],[50,1339,1287],{"className":1340},[53,762],[101,1342],{},[50,1344,621],{"className":1345},[53,54],[50,1347,763],{"className":1348},[53,762],[50,1350,763],{"className":1351},[53,762],[50,1353,763],{"className":1354},[53,762],[101,1356],{},[50,1358,621],{"className":1359},[53,54],[50,1361,852],{"className":1362},[53,762],[50,1364,1069],{"className":1365},[53,762],[50,1367,1084],{"className":1368},[53,762],[101,1370],{},[50,1372,621],{"className":1373},[53,54],[50,1375,856],{"className":1376},[53,762],[50,1378,1088],{"className":1379},[53,762],[50,1381,1383],{"className":1382},[53,762],"27",[477,1385,480,1388,480,1393,1415,1418],{"className":1386,"id":1387},[560],"to-row",[33,1389,565,1391,480],{"id":1390},"csvto-row",[16,1392,528],{"href":525},[569,1394,1397],{"id":1395,"className":1396},"csvto-row-netlogo-list-csvto-row-netlogo-list-delimiter",[14],[16,1398,565,1401,565,1408,480],{"className":1399,"href":1400},[19],"#----csvto-row-netlogo-list----csvto-row-netlogo-list-delimiter--",[50,1402,1404,1405],{"className":1403},[580],"csv:to-row ",[583,1406,1407],{},"netlogo-list",[50,1409,1404,1411,56,1413],{"className":1410},[580],[583,1412,1407],{},[583,1414,593],{},[43,1416,1417],{},"Reports the given list as a CSV row. For example:",[81,1419,1420],{},[47,1421,1422,56,1425,56,1428,622,1431,56,1434,56,1437,635,1440,1442,56,1445],{},[50,1423,604],{"className":1424},[53,54],[50,1426,608],{"className":1427},[53,107],[50,1429,528],{"className":1430},[53,54],[50,1432,626],{"className":1433},[53,60],[50,1435,852],{"className":1436},[53,762],[50,1438,776],{"className":1439},[53,807],[101,1441],{},[50,1443,621],{"className":1444},[53,54],[50,1446,876],{"className":1447},[53,60],[477,1449,480,1452,480,1457,1478,1481],{"className":1450,"id":1451},[560],"to-string",[33,1453,565,1455,480],{"id":1454},"csvto-string",[16,1456,538],{"href":535},[569,1458,1461],{"id":1459,"className":1460},"csvto-string-netlogo-list-csvto-string-netlogo-list-delimiter",[14],[16,1462,565,1465,565,1471,480],{"className":1463,"href":1464},[19],"#----csvto-string-netlogo-list----csvto-string-netlogo-list-delimiter--",[50,1466,1468,1469],{"className":1467},[580],"csv:to-string ",[583,1470,1407],{},[50,1472,1468,1474,56,1476],{"className":1473},[580],[583,1475,1407],{},[583,1477,593],{},[43,1479,1480],{},"Reports the given list of lists as a CSV string. For example:",[81,1482,1483],{},[47,1484,1485,56,1488,56,1491,946,1494,56,1497,56,1500,956,1503,56,1506,968,1509,1511,56,1514],{},[50,1486,604],{"className":1487},[53,54],[50,1489,608],{"className":1490},[53,107],[50,1492,538],{"className":1493},[53,54],[50,1495,763],{"className":1496},[53,762],[50,1498,630],{"className":1499},[53,60],[50,1501,856],{"className":1502},[53,762],[50,1504,1069],{"className":1505},[53,762],[50,1507,964],{"className":1508},[53,762],[101,1510],{},[50,1512,621],{"className":1513},[53,54],[50,1515,1517],{"className":1516},[53,60],"\"1,two,3\\n4,5\"",[477,1519,480,1521,480,1526,1551,1554,1583,1590],{"className":1520,"id":449},[560],[33,1522,565,1524,480],{"id":1523},"csvto-file",[16,1525,438],{"href":545},[569,1527,1530],{"id":1528,"className":1529},"csvto-file-csv-file-netlogo-list-csvto-file-csv-file-netlogo-list-delimiter",[14],[16,1531,565,1534,565,1542,480],{"className":1532,"href":1533},[19],"#----csvto-file-csv-file-netlogo-list----csvto-file-csv-file-netlogo-list-delimiter--",[50,1535,1537,1538,56,1540],{"className":1536},[580],"csv:to-file ",[583,1539,991],{},[583,1541,1407],{},[50,1543,1537,1545,56,1547,56,1549],{"className":1544},[580],[583,1546,991],{},[583,1548,1407],{},[583,1550,593],{},[43,1552,1553],{},"Writes the given list of lists to a new CSV file. For example:",[81,1555,1556],{},[47,1557,1558,56,1561,56,1564,946,1568,56,1571,56,1574,956,1577,56,1580,968],{},[50,1559,604],{"className":1560},[53,54],[50,1562,438],{"className":1563},[53,54],[50,1565,1567],{"className":1566},[53,60],"\"myfile.csv\"",[50,1569,763],{"className":1570},[53,762],[50,1572,630],{"className":1573},[53,60],[50,1575,856],{"className":1576},[53,762],[50,1578,1069],{"className":1579},[53,762],[50,1581,964],{"className":1582},[53,762],[43,1584,1585,1586,1589],{},"will result in a file ",[47,1587,1588],{},"myfile.csv"," containing:",[81,1591,1592],{},[47,1593,1594,1598,1600],{},[50,1595,1597],{"className":1596},[53,54],"1,two,3",[101,1599],{},[50,1601,1603],{"className":1602},[53,54],"4,5",{"title":1605,"searchDepth":1606,"depth":1607,"links":1608},"",5,3,[1609,1616],{"id":25,"depth":1610,"text":31,"children":1611},2,[1612,1613,1614,1615],{"id":35,"depth":1607,"text":41},{"id":70,"depth":1607,"text":76},{"id":236,"depth":1607,"text":242},{"id":424,"depth":1607,"text":430},{"id":452,"depth":1610,"text":458,"children":1617},[1618,1619,1620,1621,1627,1632,1637,1642,1647],{"id":469,"depth":1607,"text":475},{"id":512,"depth":1607,"text":518},{"id":550,"depth":1607,"text":556},{"id":564,"depth":1607,"text":1622,"children":1623},"\n    csv:from-row\n  ",[1624],{"id":571,"depth":1625,"text":1626},4,"\n    csv:from-row netlogo-string\n    csv:from-row netlogo-string delimiter\n  ",{"id":897,"depth":1607,"text":1628,"children":1629},"\n    csv:from-string\n  ",[1630],{"id":902,"depth":1625,"text":1631},"\n    csv:from-string netlogo-string\n    csv:from-string netlogo-string delimiter\n  ",{"id":974,"depth":1607,"text":1633,"children":1634},"\n    csv:from-file\n  ",[1635],{"id":979,"depth":1625,"text":1636},"\n    csv:from-file csv-file\n    csv:from-file csv-file delimiter\n  ",{"id":1390,"depth":1607,"text":1638,"children":1639},"\n    csv:to-row\n  ",[1640],{"id":1395,"depth":1625,"text":1641},"\n    csv:to-row netlogo-list\n    csv:to-row netlogo-list delimiter\n  ",{"id":1454,"depth":1607,"text":1643,"children":1644},"\n    csv:to-string\n  ",[1645],{"id":1459,"depth":1625,"text":1646},"\n    csv:to-string netlogo-list\n    csv:to-string netlogo-list delimiter\n  ",{"id":1523,"depth":1607,"text":1648,"children":1649},"\n    csv:to-file\n  ",[1650],{"id":1528,"depth":1625,"text":1651},"\n    csv:to-file csv-file netlogo-list\n    csv:to-file csv-file netlogo-list delimiter\n  ","Documentation for the CSV extension.","md",{"source":1655,"metadataOutputPath":1656,"projectConfig":1657,"language":1664,"inheritFrom":1672,"output":1671,"version":1658,"icon":1673,"extensionName":1674,"assetsRoot":1659},"../../external/extensions/csv/csv.md","content/csv.metadata.yaml",{"version":1658,"projectRoot":466,"scanRoot":1659,"outputRoot":1660,"defaults":1661,"engine":1667,"partials":1668,"dedupeIdenticalDiskWrites":1671},"7.0.4","/home/runner/work/Helio/Helio/external/extensions/csv","content",{"inheritFrom":1662,"language":1664,"output":1665,"extension":1653,"title":1666,"version":1658},[1663],0,"en",false,"NetLogo User Manual","mustache",{"directoryPaths":1669,"extensions":1670},[466],[1667,1653],true,[1663],"i-material-symbols-csv",{"shortName":12,"fullName":21},"/csv",{"title":5,"description":1652},"QXJ8PLZXMJChTupoAh3q3evg7u7xHegTRfFk91BuIZk",[1679,1684],{"title":1680,"path":1681,"stem":1682,"description":1683},"Copyright and License Information","/copyright","copyright","This page provides information about the copyright and licensing of NetLogo.",{"title":1685,"path":464,"stem":1686,"description":1687},"CSV Extension Dictionary: dictionary","csv/dictionary","Documentation for the dictionary primitive.",1777657789615]