Jump to content

Comma-separated failu kā masīvu un tad rakstīt failā.


Sasa
 Share

Recommended Posts

Viss jātaisa ar Javascript.

 

Kā prātīgāk būtu taisīt, ja ir jāizveido 'Comma-separated' fails kur katra vērtība attdalīta ar komatiem, lai nevajadzētu virknēt virkni ar vertībāk un tad vēl tās atdalīt ar komatiem.

Domaju, ka varētu mēģināt sataisīt masīvu, kur varētu salikt vērtības un, tad rakstīt failā. Tā varētu aizvairīties no kļūdām.

Link to comment
Share on other sites

Kā vispār javaskriptā var izveidot failu?

Ja vajag vienkārši izveidot stringu csv formātā, tad vienkārši:

var s = [];
for (var i=0; i<ierakstu_skaits; i++)
{
s.push([elem1, elem2, elem3, ...].join(","));
}
s = s.join("\n");
alert(s);

Link to comment
Share on other sites

Kā vispār javaskriptā var izveidot failu?

Cookie - vienīgais, kas nāk prātā :) bet gan jau nav tas, kas autoram vajadzīgs

Link to comment
Share on other sites

Šitā lieta strādās tikai uz IE. Izmantošu ActiveXObject, lai lokāli izveidotu kādu failu.

Un par failu runājot, ir tā ka masiva vienā rindiņā var būt ~76 elementi, un tādu rindiņu neierobežoti daudz. Bet ne katrā elementā ir sava vērtība daži elementi paliek tukši.

Tāpēc kā var sataisīt tā ka es varu norādīt kādu vērtību un kādā elementā pēc kārtas rakstīt (vai 1 vai 2 vai 76)?

 

šādi man būs rindas un rindās būs elementi, tad es rindu elementiem piešķiršu vērtībās, tad tās pierms likšanas failā sadžonošu un gatavs. Nebūs jāvirknē nemērā garš stings un jāskaita komats pa komatam, lai ārliecinātos ka esmu pareizā vietā ielicis kādu vērtību.

 

Šādi izskatās ka ir gana labs variants?

 

<html>
<head>
 <title>Array</title>		
<script>	 
	var a = new Array();
	for (var i = 0; i < 5; i++) {
	  a[i] = new Array();
	  for (var j = 0; j < 76; j++) {
		a[i][0] = "viens";
		a[i][1] = "divi";
		a[i][2] = "tris";
		a[i][3] = "cetri";
		a[i][4] = "pieci";
		a[i][5] = "sesi";
		a[i][6] = "septini";
		a[i][7] = "astoni";
		a[i][8] = "devini";
		a[i][9] = "desmit";
		a[i][10] = "vienpadsmit";
		a[i][11] = "divpadsmit";
		a[i][12] = "trispadsmit";
		a[i][13] = "ceturpadsmit";
		a[i][14] = "piedpadsmit";
	  }
	} 

	var fso = new ActiveXObject("Scripting.FileSystemObject");
	var s = fso.CreateTextFile("C:\\Test.txt", true);
	for (var i = 0; i < 5; i++) {
	  document.write('<br>');
	  //s.WriteLine('\n');				  
	  for (var j = 0; j < 76; j++) {
		document.write(a[i][j]+',');
		var string = a[i][0]+','+a[i][1]+','+a[i][2]+','+a[i][3]+','+a[i][4]+','+a[i][5]+','+a[i][6]+','+a[i][7]+','+a[i][8]+','+a[i][9]+','+a[i][10]+',';
		s.WriteLine(string);
	  }
	}
	s.Close();		 
	</script>
</head>	
<body>		
</body>
</html>

 

Kā izveidot lai man masīvs sāktos ar [1] ... tā lai nebūtu [0], kas savukārt ir kā pirmais. Man vajag lai masīva pirmais elements ir arī dzīvē pirmais elements.

 

tagad sanāk ka ir tā ja es atstāju(vispār neko nenorādu) nulltajam masīva elementam un tad sāku visu definēt no [1].

 

tad rezultāts ir tāds:

,1,2,3 ...

Labots - Sasa
Link to comment
Share on other sites

Tu laikam joprojām nemācies no tā, ko tev dažas dienas atpakaļ uzraksta...

Nu kāpēc tu tur to stringu taisi ar garo + .. + .. + penteri?

var string = a[i].join(",") + ",";

(nezinu gan kāpēc tev beigās vajag lieku komatu.

 

Tāpēc kā var sataisīt tā ka es varu norādīt kādu vērtību un kādā elementā pēc kārtas rakstīt (vai 1 vai 2 vai 76)?

Kā tas ir kā? Nu vienkārši uztaisi masīvu vajadzīgajā garumā un raksti tikai vajadzīgos elementus:

var arr = new Array(76);
arr[9] = "desmitais elements";
arr[55] = "piecdesmit sestais elements";

 

Kā izveidot lai man masīvs sāktos ar [1] ... tā lai nebūtu [0], kas savukārt ir kā pirmais. Man vajag lai masīva pirmais elements ir arī dzīvē pirmais elements.

Kas tev liedz vienkārši rakstīt masīvā pēc 0 bāzēta indeksa? T.i:

arr[i] = ".."; vietā rakstīt arr[i-1] = "..";
arr[10] = ".."; vietā rakstīt arr[9] = "..";
utt..

Labots - bubu
Link to comment
Share on other sites

Izveido kontu, vai pieraksties esošajā, lai komentētu

Jums ir jābūt šī foruma biedram, lai varētu komentēt tēmas

Izveidot jaunu kontu

Piereģistrējies un izveido jaunu kontu, tas būs viegli!

Reģistrēt jaunu kontu

Pierakstīties

Jums jau ir konts? Pierakstieties tajā šeit!

Pierakstīties tagad!
 Share

×
×
  • Izveidot jaunu...