Skocz do zawartości

Pomoc przy rozłożeniu 1 pliku na wiele plików


Limax7

Rekomendowane odpowiedzi

Hej.

Mam problem z pewną rzeczą. Wygenerowałem plik wirtualnych asteroid i wyodrębniłem z niego dane JD,x,y,z

 

tu przykład 10 takich wpisów

 

 

2456950.383702 112096513.56577 -176924086.99425 -6313568.80769
2456950.383702 111890753.64092 -176920197.29552 -6175595.33408
2456950.383702 112549874.36119 -176833245.68291 -6780494.31853
2456950.383702 112177465.43521 -176911011.59596 -6396821.19154
2456950.383702 112247754.12864 -176884213.15565 -6489672.44991
2456950.383702 112105751.05836 -176940856.13824 -6297536.45161
2456950.383702 112097411.93494 -176922351.51638 -6315042.42810
2456950.383702 112282319.86213 -176855459.84846 -6546949.15570
2456950.383702 112420131.91680 -176871839.07069 -6647656.84021
2456950.383702 111727541.54779 -177020495.14664 -5907990.15740

 

Data jest stała dla każdej asteroidy.

 

Potrzebuję te dane rozłożyć na osobne pliki np. 001.txt 002.txt itp.

czyli uzyskać z powyższego przykładu dziesięć plików

 

 

plik 001.txt

2456950.383702 112096513.56577 -176924086.99425 -6313568.80769

 

plik 002.txt

2456950.383702 111890753.64092 -176920197.29552 -6175595.33408

 

.

.

.

.

 

 

Jest to do wykonania ? czy muszę te pliki tworzyć samemu a wolałbym tego nie robić bo tych asteroid mam ponad 2000

 

Z góry dziękuję!

Odnośnik do komentarza
Udostępnij na innych stronach

fakt, potrzebny jest programik,

a może masz Total Comandera?

jak nie, to tu jest taki jakiś: http://www.programosy.pl/program,dzielenie-plikow.html

potrafi poprawnie podzielić ten przykładowy plik na mniejsze, ale jest skopany, bo wyniki zapisuje dodając kolejne numeracje plików w rozszerzeniu, a nie jego nazwie,

więc może poczekaj jak zbuffer skompiluje Ci lepszy

Odnośnik do komentarza
Udostępnij na innych stronach

Proszę bardzo. Napisałem program konsolowy. Jako parametr trzeba podać ścieżkę do pliku wejściowego (oczywiście najlepiej mieć go w tym samym katalogu co exe).

 

Wklejam kod bo może się komuś przyda i nie wiem jakiego używasz systemu.

 

#include <iostream>
#include <stdio.h>

using namespace std;

int main(int argc, char *argv[]) 
{
	if(argc < 2)
		cout << "Please give input file name!";
			
	FILE *fp = fopen(argv[1], "r");
	
	if(fp != NULL)
	{
		char line[256];	
		int i=1;
		
		while(fgets(line, 256, fp))
		{
			char filename[12];
			sprintf(filename, "%d.txt", i);
			FILE *fp2 = fopen(filename, "w");
			fprintf(fp2, "%s", line);
			fclose(fp2);
			i++;
		}
		
		fclose(fp);
	}
	else
		cout << "File doesn't exist!";
	
	return 0;
}

 

Dorzucam też plik exe. Nie pracuję normalnie na Windowsie więc nie wiem czy on zadziała bez żadnych bibliotek.

 

Jeżeli będzie problem z uruchomieniem a używasz Windowsa to ściągnij i zainstaluj darmowe środowisko programowania "Dev-C++".

Divider.zip

  • Lubię 1
Odnośnik do komentarza
Udostępnij na innych stronach

Dobra. Dotarłem do domu i sprawdziłem, na systemie na którym nie mam Dev'a. Wszystko działa więc nie potrzeba żadnych bibliotek.

 

Miałem obawy, bo wiem że przy programach pisanych w Visual Studio trzeba często posiadać odpowiednią wersję biblioteki STL produkcji MS.

Odnośnik do komentarza
Udostępnij na innych stronach

Proszę bardzo.....

 

Dorzucam też plik exe. Nie pracuję normalnie na Windowsie więc nie wiem czy on zadziała bez żadnych bibliotek.

 

Jeżeli będzie problem z uruchomieniem a używasz Windowsa to ściągnij i zainstaluj darmowe środowisko programowania "Dev-C++".

 

 

Dziękuję bardzo!

Działa doskonale. Wystarczy przeciągnąć plik na plik programu :)

 

Dziękuję Wam wszystkim za chęć pomocy.

Jesteście wspaniali :)

 

 

-----

Do tego potrzebowałem tego programu

http://astropolis.pl/topic/40401-kometa-c2013-a1-siding-spring-uderzy-w-marsa/?p=485401

Edytowane przez Limax7
Odnośnik do komentarza
Udostępnij na innych stronach

Wg mnie do takich rzeczy najlepszy jest awk. Narzędzie tak proste i wszechstronne jak tylko się da:

 

awk '{f=sprintf("%03i.txt", NR); print $0 > f; close(f)}' plik

 

i gotowe. Jak człowiek jest leniwy i niewiele potrzebuje, to można nawet krócej:

 

awk '{print $0 > NR".dat"}' plik

 

 

 

Odnośnik do komentarza
Udostępnij na innych stronach

Dołącz do dyskusji

Możesz dodać zawartość już teraz a zarejestrować się później. Jeśli posiadasz już konto, zaloguj się aby dodać zawartość za jego pomocą.

Gość
Dodaj odpowiedź do tematu...

×   Wklejono zawartość z formatowaniem.   Usuń formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Odnośnik został automatycznie osadzony.   Przywróć wyświetlanie jako odnośnik

×   Przywrócono poprzednią zawartość.   Wyczyść edytor

×   Nie możesz bezpośrednio wkleić grafiki. Dodaj lub załącz grafiki z adresu URL.

×
×
  • Dodaj nową pozycję...

Powiadomienie o plikach cookie

Umieściliśmy na Twoim urządzeniu pliki cookie, aby pomóc Ci usprawnić przeglądanie strony. Możesz dostosować ustawienia plików cookie, w przeciwnym wypadku zakładamy, że wyrażasz na to zgodę.