En omista borlandin manuaalia ja siksi tarttis vähä neuvoa! :) koodissani on rename toimenpide, mutta huomasin että se toimii vain jos kyseinen tiedosto joka uudelleen nimetään on samassa kansiossa kuin exe-tiedostoni! Luulisin että kääntäjässä voi määrittää tämän seikan siten että rename toimenpide tapahtuu vaikka ihan jossain toisessa kansiossa, olenko oikeassa? jos olen niin kuinka ja miten se tapahtuisi?
Samoin kun ohjelmassani on #includella sisällytetty "määrittelysivuja" niin kääntäjässä voi määrittää ne tiettyyn kansioon eli ei tarvitse pitää samassa polussa kuin exe! Miten tämä tapahtuu?? Olisi kiva jos tulis tipsiä! :)
Samoin kun ohjelmassani on #includella sisällytetty "määrittelysivuja" niin kääntäjässä voi määrittää ne tiettyyn kansioon eli ei tarvitse pitää samassa polussa kuin exe! Miten tämä tapahtuu?? Olisi kiva jos tulis tipsiä! :)
Vastaukset 10
Vanhimmat
1)
rename("c:/kansio/file.ext","foo.bar");
2)
rename("c:\kansio\file.ext","foo.bar");
tai jotain. käytä siis erottimina joko \ tai /
se ei taida pelata tollai!! olen kyl yrittänyt.. nimi ei vaihdu.. ainoastaan jos on samassa kansiossa!!??
käytitkö pitkiä polkuja _molemissa_ nimissä ?
toinen vaihtoehto:
käytä kutsua
chdir() (#include )
jolla vaihdat työ hakemiston polun ja sitten renamea ilman pitkiä polkuja.
Minulla on char taulukossa tiedoston nimi jonka olen findfirst -käskyllä hakenut tietystä kansiosta! Eli silloinhan kun käytän char taulukon nimeä renamessa niin siinä ei ole pitkää nimeä! Aivan! entäpä kuinka nyt saan tällä tavalla siihen lisättyä sen pitkän nimen, toimiiko tyyliin ( rename(c:\kansio\"taulu",taulu2);)
siis taulu on taulukko jonka sisällä on nimi esim. Tiedosto.txt ja taulu2 on taulukko jonka sisällä on uusi nimi esim. 12345 !!
Nyt tapahtuma pitäisi saada tapahtumaan polussa c:\kansio\
Aika sekava selostus mut jospa siitä jotain tajuais! :)
chdir() kanssa pitäs toimia ?
#include
#include
int main(void)
{
char vanha[80];
char uusi[80];
char hakemisto[80];
printf("Work dir: ");
gets(hakemisto);
printf("vanha nimi: ");
gets(vanha);
printf("uusi nimi: ");
gets(uusi);
if (chdir(hakemisto) == -1)
puts("hakemisto virhe");
if (rename(vanha, uusi) != 0)
puts("tiedosto virhe");
return 0;
}
jos taulukossa on pelkkä nimi joudut lisäämään sen polun:
char polku[256] = "C:\kansio\";
char taulu1[256] = "Tiedosto.txt"
char cmd[256];
sprintf(cmd,"%s %s",polku,taulu1);
sama toiselle nimelle jos tarpeen, jos käytössä on C++ menee kai jotenkin näin ?
String fullpath = polku + " " + taulu1;
Juu, eli teen taulukon jossa on polku valmiina ja yhdistän tiedostonimen tähän polkuun käyttämällä strcat -komentoa!
Renamessa käytän sitten tätä!! Pitäisi toimia! JEPS! :)
Kiitos vinkeistä.. renamen sain pelaamaan, mutta vielä ois kiva jos joku osais neuvoa kuinka koneella tietyissä paikoissa olevat "määrittelysivut" saadaan includeeen niin ettei niitä tarvi pitää samassa polussa exen kans..!! eli Borlandissa määrittely jotenkin?, että koodi löytää oikeasta paikkaa nämä määrittelysivut!!
tarkoitat headereita ?
eikö #include "c:\include\ss.h" toimi.
toinen tapa:
Options=>Project=>Directories
paina F1:stä niin helppi neuvoo. ilmeisesti voit pistää useampia include polkuja ';' erotettuna ?
En tiedä toimiiko, ei ole tullut painittua asian kanssa.
pitäs jokin .lib tiedosto sisällyttää tohon koodiin.. en mä kyl tajuu..
ilmeisesti kun koodin kääntää niin se tekee exen lisäksi jonkin tiedoston.. jota voi mm. notepadilla kattella.. tuo mun lib on saman tyylinen.. yritin jopa vaihtaa sisällöt.. mut ei onnaa..
eli siis Borland C 5.02 ja staatinen kirjasto (ei dll).
projecti ikkunassa oikealla hiiren napilla exen kohdalla "add node" tiedoston tyypiksi .lib valitse kirjasto ja lisää kirjasto projektiin.
Eli jos käännät kirjaston siitä ei pitäisi tulla .exe vaan .lib ?