Well, anyway, this is more of a note to self but I thought it could be helpful to a few others. And now back to creating trace tables..
The Big Programming Thread - Page 151
Forum Index > General Forum |
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. | ||
billy5000
United States865 Posts
Well, anyway, this is more of a note to self but I thought it could be helpful to a few others. And now back to creating trace tables.. | ||
SiPa
Germany129 Posts
Hey, quick question: How do i import a xls (or xlsx) (Excel) File into an 2D Array using C? Would be happy if some1 could PM me an answer or some hints on how to find the answer; google isnt helping. most likely solved | ||
![]()
tofucake
Hyrule18982 Posts
| ||
Deleted User 101379
4849 Posts
On July 26 2012 18:36 SiPa wrote: Hey, quick question: How do i import a xls (or xlsx) (Excel) File into an 2D Array using C? Would be happy if some1 could PM me an answer or some hints on how to find the answer; google isnt helping. If you are using windows, you can use the Windows/Excel API... but honestly, you don't really want to. The windows API is complex and XLS/XLSX is a very, very complex format since it supports lots of formatting, layout, formulas and such. Make your users submit CSV files instead (you can select CSV in Excels "Save as") and parse those. CSV files are simple in comparision, though there are some variants in the format - comma or semicolon to seperate values, single/double/no quotation marks around values, .... If i remember correctly, Excel by default uses this format:
To parse it you can also use some free library instead of writing your own parser. As an example, google found me http://sourceforge.net/projects/libcsv/ which should do the job. | ||
Merany
France890 Posts
Quick background about myself before I ask my question: I did a bit of programming (C/C++, Java) during my studies but got "trapped" in SQA and testing for 2 years because of an internship (not that I hate QA by any means). I finally managed to work my way up to development just recently in my company. The team has quite a lot of money and like "shiny stuff" so they exclusively work with latest Microsoft technologies i.e. C#, .NET 4.0, WPF, they also try to implement the MVVM pattern the best they can. And I got to say, it's a bit hard now. To get back in shape ASAP I decided to work on my own and what more motivating way to do it than creating a Starcraft app? ![]() I quickly realized that I would need something to parse replays. I've googled a bit and found libraries but I would like to avoid anything third party if I can. Do you think it would be interesting to code one for myself just for the sake of learning? In case yes, what approach would I need to do it? Did not find anything useful on the internet except a replay is some sort of MPQ file? To begin with, I would just need the names of the players, the map, the winner, maybe the overall apm. Any help welcomed! ![]() | ||
Gesh
Bulgaria69 Posts
To begin with, I would just need the names of the players, the map, the winner, maybe the overall apm. The first two thing you want to do are quite simple - open up a map with a hex editor and see what their offset is. And yes, replay is sort of mpq file, considering that the first 3 bytes of it are 'MPQ'. I think using hex editor you should be able the deduce the other information as well, but you will need more replays. | ||
memcpy
United States459 Posts
On July 26 2012 21:09 Gesh wrote: The first two thing you want to do are quite simple - open up a map with a hex editor and see what their offset is. And yes, replay is sort of mpq file, considering that the first 3 bytes of it are 'MPQ'. I think using hex editor you should be able the deduce the other information as well, but you will need more replays. There's also a wiki on one of those replay viewer library sites that has all the offsets written down. Don't have the link but I remember seeing it before and it shouldn't be too hard to find. | ||
Gesh
Bulgaria69 Posts
On July 26 2012 21:15 memcpy wrote: There's also a wiki on one of those replay viewer library sites that has all the offsets written down. Don't have the link but I remember seeing it before and it shouldn't be too hard to find. Well, yeah, the links are listed here http://en.wikipedia.org/wiki/MPQ although the first link is broken (points to the correct place, but the wiki vomits exceptions) | ||
crappen
Norway1546 Posts
| ||
tec27
United States3690 Posts
On July 26 2012 20:40 Merany wrote: Hi guys, Quick background about myself before I ask my question: I did a bit of programming (C/C++, Java) during my studies but got "trapped" in SQA and testing for 2 years because of an internship (not that I hate QA by any means). I finally managed to work my way up to development just recently in my company. The team has quite a lot of money and like "shiny stuff" so they exclusively work with latest Microsoft technologies i.e. C#, .NET 4.0, WPF, they also try to implement the MVVM pattern the best they can. And I got to say, it's a bit hard now. To get back in shape ASAP I decided to work on my own and what more motivating way to do it than creating a Starcraft app? ![]() I quickly realized that I would need something to parse replays. I've googled a bit and found libraries but I would like to avoid anything third party if I can. Do you think it would be interesting to code one for myself just for the sake of learning? In case yes, what approach would I need to do it? Did not find anything useful on the internet except a replay is some sort of MPQ file? To begin with, I would just need the names of the players, the map, the winner, maybe the overall apm. Any help welcomed! ![]() Having one of those libraries myself, I do not recommend you approach this, unless your intent is very simple. Like, the names of the players and the map name are fairly easy, the winner is easy most of the time, but the APM will be a pain. The problem is that to actually parse game actions, you have to put in a lot of work to support all of the different action types, and they change between patches, etc. You'll find that you spend less time doing actual interesting programming, and more time collecting data to study/test with. And thats assuming that you use a premade library to extract things from the MPQ. Anyway, if you still decide you want to approach this, this is the best documentation of the format that you will get: https://github.com/GraylinKim/sc2reader/wiki/Replay-Format-Home You can also join #sc2reader on irc.freenode.net | ||
berated-
United States1134 Posts
On July 26 2012 21:25 crappen wrote: Just curioius, anyone a little experienced with the Playframework 2.0 ? I've only played with it for an hour or so and I've watched videos because we were thinking about using it. I've done java web app dev for 4 yrs, though, so it seemed like a nice transition into a rapid development style while still staying in java. Back to your question though, why do you ask? | ||
Craton
United States17234 Posts
I have an Oracle Express server set up on a machine on my local network. I can connect to it succesfully through SQL*PLUS and SQL Developer on the local machine (localhost as the hostname). I want to access it from another machine on the same LAN using SQL Developer. The issue is resolving the hostname (or supplying some other form of "use this machine" identification). Can someone point me in the right direction for this? I know it should be a minor change, but I can't figure out what needs doing. The hostname I tried to use is the name of the PC holding Oracle (and also the hostname as it's defined on the listener, which is running on the port I'm trying). Had no luck with using the IP as the hostname or using the hosts file. Status: Failure -Test failed: IO Error: The Network Adapter could not establish the connection Nevermind. Solved by adding an exception to Windows Firewall running on that machine. (zzzz) | ||
SiPa
Germany129 Posts
Another question from me: I found this neat little sourcecode, which i compiled into a .dll. It's in C++. Coworker of mine told me, i can probably still use it with C; what are the restrictions? If you got some spare time, look over this code: (i copied the part i will want to use in my Program) pastebin The only thing i will do with this is reading doubles from the cells and putting them into an array or vector. Website, where I got it from. Solved i guess | ||
Deleted User 101379
4849 Posts
On July 27 2012 19:47 SiPa wrote: Another question from me: I found this neat little sourcecode, which i compiled into a .dll. It's in C++. Coworker of mine told me, i can probably still use it with C; what are the restrictions? If you got some spare time, look over this code: (i copied the part i will want to use in my Program) pastebin The only thing i will do with this is reading doubles from the cells and putting them into an array or vector. Website, where I got it from. It's pure C++ code, you can theoretically use it in C calling the class methods by their C aliases but it won't be pretty. C++ method names are internally converted to something containing the name of the method, the type of the returned value and the types of the parameters. For example void foo(char *bar, int baz) could be called using something along the lines of __vfoo_cp_i(char *bar, int baz); However, since the code is completely object oriented, if you really want to use excel files instead of CSV I would suggest you change your project from C to C++ and use those classes as they are instead, which would be about a million times easier. | ||
SiPa
Germany129 Posts
On July 27 2012 20:11 Morfildur wrote: It's pure C++ code, you can theoretically use it in C calling the class methods by their C aliases but it won't be pretty. C++ method names are internally converted to something containing the name of the method, the type of the returned value and the types of the parameters. For example void foo(char *bar, int baz) could be called using something along the lines of __vfoo_cp_i(char *bar, int baz); However, since the code is completely object oriented, if you really want to use excel files instead of CSV I would suggest you change your project from C to C++ and use those classes as they are instead, which would be about a million times easier. It was for the most part only a theoretical question. I was kinda already leaning towards c++, since I havent really gotten into C yet. There were a few reasons for C, but if i really have to use something like __vfoo_cp_i(char *bar, int baz); , then I will stick to c++. thanks alot for the quick answer! | ||
CecilSunkure
United States2829 Posts
On July 27 2012 20:16 SiPa wrote: It was for the most part only a theoretical question. I was kinda already leaning towards c++, since I havent really gotten into C yet. There were a few reasons for C, but if i really have to use something like , then I will stick to c++. thanks alot for the quick answer! I don't know what's wrong with calling that function in C. Looks fine to me. | ||
andeh
United States904 Posts
So I want to make a web app where you are given a bunch of cards (say magic cards or whatever) and you are able to pick a few, and then based on the cards you choose, it gives back a few cards that are the best counters. I want to use a gui. I'm just not sure on how I should do it, should I use java with swing, flash? + Show Spoiler + this question makes me sound rather clueless rofl :D | ||
Deleted User 101379
4849 Posts
On July 29 2012 07:29 andeh wrote: Hey, I need some help with how to do something. So I want to make a web app where you are given a bunch of cards (say magic cards or whatever) and you are able to pick a few, and then based on the cards you choose, it gives back a few cards that are the best counters. I want to use a gui. I'm just not sure on how I should do it, should I use java with swing, flash? + Show Spoiler + this question makes me sound rather clueless rofl :D Which programming languages do you know? The simplest solution would be some Javascript with a PHP backend but it really depends on your existing knowledge. | ||
andeh
United States904 Posts
On July 29 2012 07:31 Morfildur wrote: Which programming languages do you know? The simplest solution would be some Javascript with a PHP backend but it really depends on your existing knowledge. I have good knowledge of java, ok usage of c, ok knowledge of c/c++. | ||
tec27
United States3690 Posts
On July 29 2012 07:29 andeh wrote: Hey, I need some help with how to do something. So I want to make a web app where you are given a bunch of cards (say magic cards or whatever) and you are able to pick a few, and then based on the cards you choose, it gives back a few cards that are the best counters. I want to use a gui. I'm just not sure on how I should do it, should I use java with swing, flash? + Show Spoiler + this question makes me sound rather clueless rofl :D If you want to make a webapp I'd say your choices are between doing most stuff on the client (Javascript) or on the server (any number of server languages [php, ruby, python, c#, ...]). Flash and Java aren't really great choices for web stuff at this point, and I don't think anyone really uses them for much any more. Personally I'd use Javascript, and if it needed a lot of data, I'd setup some sort of simple API on a server. I'd probably use JS for the server as well (but I pick JS for just about every project I do at this point, so you shouldn't listen to me on the server part ![]() | ||
| ||