Anonymní profil 3skA – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu
Reklama

Anonymní profil 3skA – Programujte.comAnonymní profil 3skA – Programujte.com

 

Příspěvky odeslané z IP adresy 91.139.6.–

ORION
.NET › Zapisování do Gridu z vlákna
31. 5. 2019   #383789

Ahoj,

potřeboval bych poradit s zapisováním dat, které dostávám z jiného threadu. Pročítám si tutoriály o vláknech, ale prostě nejsem z toho moudrý. :-/ Mám v jiné třídě metodu pro zápis do gridu a v hlavním vlákně vše funguje (respektive se vše zapíše až práce celé třídy skončí). Ale jakmile to dám do threadu, tak mi to do Gridu nezapisuje.

Chápu, že musím asi přes Invoke, nebo synchonizatin context, dostat data a zároveň mi asi musí běžet druhý thread pro grid? Ale prostě nevím jak to udělat. Poradil by mi někdo prosím? nechápu jak synchronizovat práci více vláken, které jsou závislé na aktualizaci dat z jednoho threadu.

Mám okno 

private void ConvertSNDFFile_Button_Click(object sender, RoutedEventArgs e)
        {
            if (SDNF_2k14_checkBox.IsChecked == true)
            {
                _synchronizationContext = SynchronizationContext.Current;
                _threadStart = new ThreadStart(Compare);
                _thread = new Thread(_threadStart);
                _thread.Start();
            }
            else if (SDNF_2k18_CheckBox.IsChecked == true)
            {                
                MessageBox.Show("Zatím neumím :-(");
            }
}


private void Compare()
        {
            Stopwatch stw = Stopwatch.StartNew();
            ReadWriteFile_WND rwf = new ReadWriteFile_WND(datasndf.dataSDNF, PathSDNFFile, NameSDNFFile, frequency, PathPointCloudFile, successRate, interval, Results, numberOfCheks, HalfLength, OneThirdOfTheLength);            
            stw.Stop();
            MessageBox.Show(stw.Elapsed.TotalSeconds.ToString());
        }

Pak classu pro zápis do gridu 

 class DataGridWrite
    {
        public string Name { get; set; }
        public string Result { get; set; }

        
        public void WriteToGrid(string Name, string result , DataGrid resultsGrid)
        {
            var results = new DataGridWrite
            {
                Name = Name,
                Result = result

            };

            resultsGrid.Items.Add(results);
        }
    }

WriteToGrid volám přímo ve třídě kterou spouští Compare(). Což je teda blbě.

Představoval bych si, že vždy po aktualizaci všech dat, které chci mít v gridu, se mi prostě zapíše nový řádek. A z toho poznám postup kodu. Tak samo bych rád udělal i progressbar, ale problém je v podstatě stejný, nevím jak na to. :-/ Díky moc za radu.

3skA
.NET › MenuItem nefuguje správně
5. 9. 2018   #381465

Ahoj, mám problém s použitím MenuItemů v ContextMenu. Mám v MainWindow button, který zapisuje do listboxu: 

private void AddFile_Click(object sender, RoutedEventArgs e)
       {
           OpenFileDialog ofd = new OpenFileDialog() { Filter = "Všechny soubory|*.*|Pro Tools Session|*.pts|Text document|*.txt", ValidateNames = true, Multiselect = false };
           {
               ofd.Multiselect = true;
               if (ofd.ShowDialog() == true)
               {
                   try
                   {
                       foreach(string s in ofd.FileNames)
                       {
                           Data_ListBox.Items.Add(Path.GetFileName(s));
                           selectedFilesPath.Add(s);
                       }
                   }
                   catch (Exception ex)
                   {
                       MessageBox.Show(ex.Message, "Message", MessageBoxButton.OK, MessageBoxImage.Error);
                   }
               }
           }
       }

Pokud chci tento kod použít pro MenuItem, do listboxu se nic nezapíše.
XAML pro MenuItem: 

 <Window.Resources>
        <ContextMenu x:Key="Data" Placement="Bottom">
            <MenuItem Header="Add File" Click="AddFile_Click" InputGestureText="CTRL+A">
                <MenuItem.Icon>
                    <Image Source="P:\Por\Prg\BFS\BFS\Icons\icons8-add-64.png"/>
                </MenuItem.Icon>
            </MenuItem>
</Window.Resources>
<Grid>
<ToolBarTray Height="30" Margin="10,0" VerticalAlignment="Top">
            <ToolBar Height="30" VerticalAlignment="Top" Margin="0,0,-117,-10">
                <Button Content="File" Margin="0,0,0,1" Width="45" VerticalAlignment="Bottom" Click="File_Click"></Button>
                <Button Content="Data" Margin="0,2,0,1" Width="45" Click="Data_Click"></Button>
            </ToolBar>
        </ToolBarTray>
</Grid>
</Window>

Předpokládám, že to bude Focusem, nebo je potřeba nastavit Binding, ale ani jedno se mi nedaří. Děkuji za případnou pomoc.

ORION206
.NET › Práce s texťákem v C++ do C#
21. 2. 2018   #219790

#4 BDS
Ahoj,

díky moc! Ano to co jsem postoval jako první, tak jsem to vykopíroval z většího souboru, protože jsem to psal vše do jednoho, takže to nebude funkční. Spíše mi šlo o to, aby bylo zřejmé co to má dělat (to se snad povedlo. :-) ). To co jsi napsal ty je super a funguje, zkusím tam narvat více podmínek, akorát mě mrzí, že jsem to nedal sám. :-)

Akorát pokud se mohu zeptat, k čemu je přesně

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");

tečka jako oddělovač, tím myslíš desetinou tečku/čárku?

Já se to ještě včera pokusil napsat nějak takhle

public struct Radek
{
    public float x;
    public float y;
    public float z;
    public float r;
    public float g;
    public float b;
}

namespace Pruhyb_VypisKonzole
{
    class Program
    {
        
        float[] pole = new float[6];

        Radek MakeRow(float[] pole)
        {
            Radek soucasnyRadek;
            soucasnyRadek.x = pole[0];
            soucasnyRadek.y = pole[1];
            soucasnyRadek.z = pole[2];
            soucasnyRadek.r = pole[3];
            soucasnyRadek.g = pole[4];
            soucasnyRadek.b = pole[5];

            return soucasnyRadek;
        }

        public static Stream ToStream(string s)
        {
            var stream = new MemoryStream();
            var writer = new StreamWriter(stream);
            writer.Write(s);
            writer.Flush();
            stream.Position = 0;
            return stream;
        }

        static void Main(string[] args)
        {


            int pocetRadku;
            int a=0;
            float[] mez_X = new float[2];

            using (StreamReader sr = new StreamReader(@"soubor.txt"))
            {
                string line;
                while ((line=sr.ReadLine()) != null)
                {
                    string[] ss = line.Split(' ');
                    Radek soucasnyRadek;
                    soucasnyRadek.x = float.Parse(ss[0]);
                    soucasnyRadek.y = float.Parse(ss[2]);
                    soucasnyRadek.z = float.Parse(ss[4]);
                    soucasnyRadek.r = float.Parse(ss[6]);
                    soucasnyRadek.g = float.Parse(ss[9]);
                    soucasnyRadek.b = float.Parse(ss[11]);

                    using (StreamWriter sw = new StreamWriter(@"soubor1.txt", true))
                    {
                        if (mez_X[0] <= soucasnyRadek.x && mez_X[1] >= soucasnyRadek.x)
                        {
                            a++;
                            pocetRadku = a;
                            sw.WriteLine("{0}", "{1}", "{2}", "{3}", "{4}", "{5}", "{6}", "{7}", "{8}", "{9}", "{10}", "{11}\n", soucasnyRadek.x, ' ', soucasnyRadek.y, ' ', soucasnyRadek.z, ' ', soucasnyRadek.r, ' ', soucasnyRadek.g, ' ', soucasnyRadek.b);
                            //sw.WriteLine("{0}", "{1}", "{2}", "{3}", "{4}", "{5}", "{6}", "{7}\n", soucasnyRadek.x, ' ', soucasnyRadek.y, ' ', soucasnyRadek.z, ' ', soucasnyRadek.rgb);
                            sw.Flush();
                        }
                    }
                            //Console.WriteLine(stream);
                }

            }
            Console.ReadKey();
        }
    }
}

Ale to mi nefunguje, píše, že že vstupní řetězec nemá správný formát (řádek soucasnyRadek.x = float.Parse(ss[0]);)

ORION206
.NET › Práce s texťákem v C++ do C#
20. 2. 2018   #219785

Ahoj,

PROSÍM o pomoc. Mám v C++ napsaný kod, díky kterému jsem schopen pracovat a eliminovat určitou část textáku a následně vypsat data do nového souboru. Jedná se o texťák se souřadnicemi a barevnou škálou: x, y, z, odrazivost, r, g, b.
Zápis v C++

#include "stdafx.h"
#include <iostream>     // std::cout
#include <fstream>      // std::ifstream
#include <string>
#include <sstream>
#include <time.h>
#include <ctime>

const int COLUMNS = 7;

struct radek
{
	float x;															//POZNAMKY:
	float y;																	//vytvorit funkci 
	float z;																	//vyhledat min, max z celeho Mracna souboru pro lepsi orientaci zadavani mezi - casova narocnost?????
	float odrazivost;															//zjistit kolik mista zabira radek - vytvorit deleni dle velikosti
	float r;																	//spravit datum time_t - VYVOLAT FUNKCI DATUM NA SPRÁVNÉM MÍSTĚ V KODU
	float g;
	float b;
};


using namespace std;

radek MakeRow(float pole[7])
{
	radek soucasnejRadek;
	soucasnejRadek.x = pole[0];
	soucasnejRadek.y = pole[1];
	soucasnejRadek.z = pole[2];
	soucasnejRadek.odrazivost = pole[3];
	soucasnejRadek.r = pole[4];
	soucasnejRadek.g = pole[5];
	soucasnejRadek.b = pole[6];

	return soucasnejRadek;
}
float main() 
{
	float mez_X[2];
	float mez_Y[2];
	float mez_Z[2];
	int pocetRadku;

		std::string filename; 
		std::string filenameOUT = "Vysledek_Cisla_Dle_Souradnic";

		std::ifstream ifs(filename.c_str(), std::ifstream::in);
		std::ofstream ofs(filenameOUT.c_str(), std::ofstream::out);
if (ifs.is_open() && ofs.is_open())
		{
			std::string line;
			while (std::getline(ifs, line))
			{
				std::istringstream ss(line);							
				radek soucasnejRadek;

				if (!(ss >> soucasnejRadek.x >> soucasnejRadek.y >> soucasnejRadek.z >> soucasnejRadek.odrazivost >> soucasnejRadek.r >> soucasnejRadek.g >> soucasnejRadek.b))
				{
					continue;
				}

				if (mez_X[0] <= soucasnejRadek.x && mez_X[1] >= soucasnejRadek.x)												
				{
					if (mez_Y[0] <= soucasnejRadek.y && mez_Y[1] >= soucasnejRadek.y)
					{
						if (mez_Z[0] <= soucasnejRadek.z && mez_Z[1] >= soucasnejRadek.z)
						{
							a++;
							pocetRadku = a;
							ofs << soucasnejRadek.x << " " << soucasnejRadek.y << " " << soucasnejRadek.z << " " << soucasnejRadek.odrazivost << " " << soucasnejRadek.r << " " << soucasnejRadek.g << " " << soucasnejRadek.b << '\n'; 
						}

					}

				}


			}
			ifs.close();
			ofs.close();
		}
		else
		{
			std::cout << "Error opening file";
		}

V podstatě jde o to, že mám vytvořenou strukturu s proměnýma a pak načítám jednotlivý řádek (může jich být v tom texťáku teřba i 40mil.) a dle podmínky vypisuju jednotlivé řádky do nového souboru. Tím prostě eliminuju to co nechci... Ale nejsem schopen tohle přepsat do C#. konkrétně nevím, jak vytvořit tu strukturu s polem (Radek (MakeRow(...)). A pak nevím jak na ten stringstream ss(line), kde přes operátor >> načítám data ze streamu a testuji stav streamu.

Neporadil by mi PROSÍM někdo, jak to přepsat do C#? Díky za každou radu.

Texťák vypadá asi tak

-2.527664 -6.172501 -1.749588 -1557 55 45 44
-18.999893 -22.491531 -0.102524 -1648 47 36 34
-24.240677 -24.054489 -0.108078 -1570 42 35 34
-24.530594 -25.052109 -1.108261 -1120 77 58 53
.NET › Poznámový blok
24. 1. 2018   #219463

#3 Radek Chalupa
Jej, tak to mě nenapadlo. Já si to přejmenoval a myslel jsem, že jsem použil richtextbox... Díky. :-)

.NET › Poznámový blok
24. 1. 2018   #219460

vygooglil jsem přímo od MS toto:

https://msdn.microsoft.com/en-us/library/hfcsf75k(v=vs.110).aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

Dělám to prakticky stejně, ale prostě to Find nemám a nefunguje.

Připojen obrázek.

.NET › Poznámový blok
24. 1. 2018   #219458

Ahoj,

snažím se naprogramovat pomocí windows form v VS2018 poznámkový blok. Zasekl jsem se u funkce Find... Pokoušel jsem se něco najít na netu, ale marně. 

Vytvořil jsem si okno Find, jak klasicky v Notepadu:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Notepad
{
    public partial class Find : Form
    {
        public Find()
        {
            InitializeComponent();
        }

        private void textBox1_TextChanged(object sender, EventArgs e)
        {
            if (textBox2.TextLength>0)
            {
                btnFindNext.Enabled = true;
            }
            else
            {
                btnFindNext.Enabled = false;
            }
        }

        private void btnFindNext_Click(object sender, EventArgs e)
        {
            Textak.Form1.FindText = textBox2.Text;
            this.Close();
        }

        private void btnCancel_Click(object sender, EventArgs e)
        {
            Textak.Form1.FindText = "";
            this.Close();
        }
    }
}

A pak se jej snažím použit v hlavním programu:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Textak
{
    public partial class Form1 : Form
    {
        string path;
        public static string FindText;
.
.
.
.
.
       private void findToolStripMenuItem_Click(object sender, EventArgs e)
        {
            using (Notepad.Find r = new Notepad.Find())
            {
                r.ShowDialog();
                if (FindText != "")
                {
                    textBox1.Find(Findtext); //Zde mám problém, prostě nemohu použít 	
                                               .Find. VS mi to nenabídne. Dle mě to 
                                                není "Find.cs" z prvního kodu, ale 
                                                Find 
                                                jako funkce, kterou prostě ve VS 
                                                nemám. nechybí mi na začátku něco, 
                                                abych to mohlo používat?
                }
            }
            
        }
    }
}

Dále by mě zajímalo Undo/Redo. Proč všem (když koukám na YT) nabízí VS funkci redo, ale já jí tam prostě nemám.

private void redoToolStripMenuItem_Click(object sender, EventArgs e)
        {
            textBox1.Redo(); // nefunguje textBox1.Undo(); funguje
            redoToolStripMenuItem.Enabled = false;
            undoToolStripMenuItem.Enabled = true;
        }

A poslední věc... Proč, když použiji using, musím psát "Notepad.Find" a nestačí použít pouze název souboru Find, tak jako to všem v tutoriálech jde. 

using (Notepad.Find r = new Notepad.Find()) // using(Find r = new Find())

Ještě teda přihodím chybovou hlášku (týká se prvních dvou kódů):

error CS0246: Typ nebo název oboru názvů Find se nenašel. (Nechybí direktiva using nebo odkaz na sestavení?)

Začínám s programováním, takže děkuji za případné rady a podněty. Pokud by někdo měl nějaký web s tutoriály a případně web podobný třeba cplusplus, budu rád. Díky.

C / C++ › Čas doby zápisu do souboru
4. 5. 2017   #215841

Ahoj,

všechny odkazy řeší víceméně můj první uváděný příkaz, který mi taky jakš takš funguje. Spíše mě zajímá proč, když vyvolám time_t na různých pozicích v kodu (tedy v rozdílný čas), ve finálním logu mi to vypíše ten čas, ve kterém byl program spuštěn.

C / C++ › Čas doby zápisu do souboru
3. 5. 2017   #215835

Zdravím,

pokouším se změřit čas, za jaký mi program projeden daný kód. Nejprve jsem zkusil:

int start = clock();
//kód
int stop = clock();
cas = ((stop - start)/(CLOCKS_PER_SEC));

Ale ikdyž popřád pracuji se stejným zdrojovým souborem, a při stejné práci mi to hází docela velké odchylky (až v minutách), čemuž moc nerozumím. Tak jsem zkusil zapsat do souboru datum vytvoření souboru v době vytvoření prázdného souboru:

#define DatumFormat "%d.%m.%Y %H:%M:%S "
#define DatumVelikost 21
static char *DATUM(char *buff) 
{
	time_t t = time(0);
	strftime(buff, DatumVelikost, DatumFormat, localtime(&t));
	return buff;
}

A pak podobné vyvolat na konci programu:

time_t tt = time(0);
struct tm*now = localtime(&tt);
char DATUM_1[80];
strftime(DATUM_1, DatumVelikost, DatumFormat, localtime(&tt));

Ale ve výsledném souboru mám pořád stejné datum (jako to první) při založení souboru. Čemuž nerozumím, když druhý čas time_t tt načítám třeba o 10 minut později. Neporadí prosím někdo? Děkuji.

C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215794

Ten kod co jsem postoval jako první, mi ten první řádek přečte. Ale našel jsem problém, že ve zdrojovém souboru .pts je za prvním číslem asi 20 mezer a to je ten problém, proč mi program padá.

124563256[20 mezer]      
-2.527664 -6.172501 -1.749588 -1557 55 45 44
-18.999893 -22.491531 -0.102524 -1648 47 36 34
-24.240677 -24.054489 -0.108078 -1570 42 35 34
-24.530594 -25.052109 -1.108261 -1120 77 58 53
-24.709518 -25.535507 -1.423325 -1355 110 87 84
-24.704971 -25.546707 -1.423325 -1319 110 89 85
-24.711197 -25.506393 -1.422440 -1341 112 92 88
-24.700485 -25.511002 -1.422104 -1379 111 91 87
-24.602066 -25.552841 -1.431717 -1446 92 70 66

a jelikož .pts soubor má 1GB, 14 mil. řádků, tak nejsem schopen ho nikde otevřít a mezery smazat. :-/

C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215792

Děkuji za obsáhlou odpověď. ještě bych měl dotaz. To co jsi napsal víceméně chápu, ale pokud počet řádků nepotřebuji, nebylo by jednoduší zjistit tedy jestli tam je, pomocí tebou zmíněné hodnoty countValueExists. Pokud to bude pravda, smazat tento řádek, soubor znovu uložit a pak použít ten můj kod úplně na začátku. Jde mi to, abych nemusel znovu psát ten kod, jak jsi to dál popsal, jelikož nejsem zatím moc zběhlý v programování, zabere mi to dost času. :-) a smazání toho řádku by to podstatně ulehčilo. 

C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215786

Díky za odpověď.

Mám za úkol to dělat v C++. Tak to prostě mastím v tom. :-) Zdrojový soubor má vždy sxtejnou strukturu tedy souřadnice x y z odrazivost r g b. Třeba takto:

-2.527664 -6.172501 -1.749588 -1557 55 45 44
-18.999893 -22.491531 -0.102524 -1648 47 36 34
-24.240677 -24.054489 -0.108078 -1570 42 35 34
-24.530594 -25.052109 -1.108261 -1120 77 58 53
-24.709518 -25.535507 -1.423325 -1355 110 87 84
-24.704971 -25.546707 -1.423325 -1319 110 89 85
-24.711197 -25.506393 -1.422440 -1341 112 92 88
-24.700485 -25.511002 -1.422104 -1379 111 91 87
-24.602066 -25.552841 -1.431717 -1446 92 70 66

Ale občas na začátku toho souboru je číslo které říká kolik řádků (bodů) je v daném souboru (buď .pts nebo .txt). A já to potřebuji rozkouskovat dle nějakých mezí a právě bez těch počtu bodů. 

C / C++ › Přeskočení na druhý řádek v…
2. 5. 2017   #215784

Zdravím,

potřeboval bych poradit, jak přeskočit na při čtení souborů na druhý řádek.

Pro čtení a zápis používám takovýto kod: 

// PODMINKA PRO ODRAZIVOST
	if (volba == 'O' || volba == 'o')
	{

		std::ifstream ifs("Mracno.pts", std::ifstream::in);
		std::ofstream ofs("POMOCNY_Cisla_Dle_Odrazivosti.pts", std::ofstream::out);

		cout << "Zadejte odrazivost pro vytvoreni souboru.\n";
		cout << "Zadejte meze odrazivosti: (nejpreve zapornou a pak kladnou)\n";
		cin >> odrazivost[0];
		cin >> odrazivost[1];

		int start = clock();
		int start_pulka = clock();

		int a = 0;

		if (ifs.is_open() && ofs.is_open())
		{
			std::string line;
			while (std::getline(ifs, line))
			{
				std::istringstream ss(line);
				std::string token;

				float pole[COLUMNS];
				int i = 0;
				while (std::getline(ss, token, ' '))
				{

					pole[i] = stof(token);

					i++;
				}
				radek soucasnejRadek;
				soucasnejRadek = MakeRow(pole);

				if (odrazivost[0] <= soucasnejRadek.odrazivost && odrazivost[1] >= soucasnejRadek.odrazivost)
				{
					a++;
					pocetRadku = a;
					ofs << soucasnejRadek.x << " " << soucasnejRadek.y << " " << soucasnejRadek.z << " " << soucasnejRadek.odrazivost << " " << soucasnejRadek.r << " " << soucasnejRadek.g << " " << soucasnejRadek.b << '\n';
				}

			}
			ifs.close();
			ofs.close();

		}
		else
		{
			std::cout << "Error opening file";
		}

Který vlastně přepisuje do nového souboru ve struktuře:

10 20 50 1520 20 20 20

Ale pokud mám na první řádku třeba jen jedno číslo, tak mi program spadne a nepracuje správně. Zkoušel jsem  přeskočit kurzorem na druhý řádek, ale nedaří se mi to. Neporadil by mi někdo prosím jak na to? Díky moc.

C / C++ › Zápis čísla do existujícího…
28. 4. 2017   #215756

Ahoj, díky za radu. Prosím tě, nemohl by jsi mi poradit názornou ukázkou, s Cčkem teprve začínám.

Můj kod vypadá prozatím takhle a jde o výpis pocetRadku na začatek souboru.:

	// PODMINKA PRO ODRAZIVOST
	if (volba == 'O' || volba == 'o')
	{
		std::ifstream ifs("CislaZdroj.txt", std::ifstream::in);
		std::ofstream ofs("Vysledek_Cisla_Dle_Odrazivosti.txt", std::ofstream::out);

		cout << "Zadejte odrazivost pro vytvoreni souboru.\n";
		cout << "Zadejte meze odrazivosti: (nejpreve zapornou a pak kladnou)\n";
		cin >> odrazivost[0];
		cin >> odrazivost[1];

		int a = 0;

		ofs << "<" << odrazivost[0] << "; " << odrazivost[1] << ">\n";


		if (ifs.is_open() && ofs.is_open())
		{
			std::string line;
			while (std::getline(ifs, line))
			{
				std::istringstream ss(line);
				std::string token;

				float pole[COLUMNS];
				int i = 0;
				while (std::getline(ss, token, ' '))
				{

					pole[i] = stof(token);

					i++;
				}
				radek soucasnejRadek;
				soucasnejRadek = MakeRow(pole);

				if (odrazivost[0] <= soucasnejRadek.odrazivost && odrazivost[1] >= soucasnejRadek.odrazivost)
				{
					a++;
					pocetRadku = a;
					ofs << soucasnejRadek.x << " " << soucasnejRadek.y << " " << soucasnejRadek.z << " " << soucasnejRadek.odrazivost << " " << soucasnejRadek.r << " " << soucasnejRadek.g << " " << soucasnejRadek.b << '\n';
				}

			}
			ifs.close();
			ofs.close();

		}
		else
		{
			std::cout << "Error opening file";
		}

		cout << "Pouzita odrazivost pro tento soubor:\n";
		cout << "Odrazivost:\n" << "<" << odrazivost[0] << "; " << odrazivost[1] << ">\n";

	}
C / C++ › Zápis čísla do existujícího…
28. 4. 2017   #215753

Zdravím,

potřeboval bych poradit se zápisem čísla do existujícího souboru. Program mi normálně vytvoří soubor s čísly, ale na konci tohoto souboru se potřebuji vrátit na začátek a zapsat nějaká data (tyto data znám až na konci souboru). K tomu jsem použil FILE.seekp(0). Nicméně pokud se mi takto něco zapíše, přepíše mi to původní data na daném řádku. A tedy moc nevím jak toto ošetřit. Napadlo mě udělat podmínku, aby se mi vložilo tolik mezer na začátek, kolika místné je ono číslo, ale to také nevím jak udělat. Děkuji  za případné rady.

C / C++ › Načtení konkrétních dat ze s…
13. 4. 2017   #215577

Ahoj,

no spíše to je součást úplně jiné pozice (stavebnictví) a abych to dostal musel jsem na to kývnout. Nicméně rád se to naučím, ale asi ne během dvou týdnu, že. :-) Studuju mistrovství v C++ a googlim, ale prostě pokud mi to někdo vysvětlí, tak je to mnohem jednodušší se pak něco učit. Kniha je hodně obsáhlá a věci, které potřebuju jsou někde vzadu, než se k tomu dostanu tak to zabere spoustu času a potřeboval bych se posouvat mnohem rychleji no.....

Každopádně díky za reakce, soubor se mi už načetl, teď na to musím nabalit dalším milion věcí, tak snad to zvládnu. :-)

 

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032019 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý